@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
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { directLimit } from '../compiler/directExecutionPolicy.js';
|
|
2
|
-
import { DIRECT_CLIENT_RUNTIME_VERSION, DIRECT_CLIENT_RUNTIME_REPAIR } from './directClientVersion.js';
|
|
3
|
-
/**
|
|
2
|
+
import { DIRECT_CLIENT_RUNTIME_VERSION, DIRECT_CLIENT_RUNTIME_REPAIR, COMPONENT_CLIENT_RUNTIME_VERSION, COMPONENT_CLIENT_RUNTIME_REPAIR } from './directClientVersion.js';
|
|
3
|
+
/** Native-plan generator consumed by the opt-in checked pipeline. */
|
|
4
4
|
import { checkSemanticBudget } from '../compiler/semanticBudget.js';
|
|
5
|
-
import { writeFileSync } from 'node:fs';
|
|
5
|
+
import { writeFileSync, mkdirSync } from 'node:fs';
|
|
6
|
+
import path from 'node:path';
|
|
6
7
|
import { inspectDirectOperation } from '../compiler/directOperation.js';
|
|
7
|
-
import { inspectDirectValueMapping } from '../compiler/directValues.js';
|
|
8
|
-
import { checkDirectSourceCompatibility, createDirectSourceCapsule } from '../compiler/directSourceCapsule.js';
|
|
8
|
+
import { inspectDirectValueMapping, inspectComponentValueMapping } from '../compiler/directValues.js';
|
|
9
|
+
import { checkDirectSourceCompatibility, createDirectSourceCapsule, componentSourceCapsuleBytes, inspectReconstructedComponentSource, inspectComponentSourceService } from '../compiler/directSourceCapsule.js';
|
|
10
|
+
import { lowerComponentShape } from '../generation/componentShape.js';
|
|
9
11
|
import { composeGeneratedSource, resolvePreamble } from '../generation/preamble.js';
|
|
10
12
|
const MAX_SOURCE_BYTES = 512 * 1024;
|
|
11
13
|
const generatedArtifacts = new WeakMap();
|
|
14
|
+
const componentArtifactOwners = new WeakMap();
|
|
12
15
|
/** Roles are separate declarations, so equal local names never merge namespace identities. */
|
|
13
16
|
export function generateDirectClient(expected, signal) {
|
|
14
17
|
const { budget } = inspectDirectOperation(expected.contract).context;
|
|
@@ -67,7 +70,7 @@ export function generateDirectClient(expected, signal) {
|
|
|
67
70
|
const faults = mappings.filter(m => m.direction.kind === 'fault');
|
|
68
71
|
const lines = [
|
|
69
72
|
'// Checked direct client; inject checkedDirectRuntimeV1 from the package root.',
|
|
70
|
-
'//
|
|
73
|
+
'// Opt-in preview binding supports only the documented direct grammar.',
|
|
71
74
|
'// Static number types require native int32 validation; native checks enforce exact shapes.',
|
|
72
75
|
`export type Request = ${shape(input)};`,
|
|
73
76
|
`export type Response = ${shape(output)};`,
|
|
@@ -97,6 +100,7 @@ export function generateDirectClient(expected, signal) {
|
|
|
97
100
|
}).join(' | ') : 'never') + ';',
|
|
98
101
|
'export type Result = Failure | (Common & { readonly kind: "soap-response"; readonly value: Response }) | DeclaredFault;',
|
|
99
102
|
`const capsule = ${literal(Buffer.from(capsule.bytes).toString('base64'))};`,
|
|
103
|
+
'export const expectedCapsuleBase64 = capsule;',
|
|
100
104
|
`export const selection = ${literal(JSON.stringify({ selector: expected.contract.selector, ...expected.selection }))};`,
|
|
101
105
|
'export function createClient(runtime: Runtime) {',
|
|
102
106
|
' return Object.freeze({',
|
|
@@ -134,3 +138,131 @@ export function writeDirectClient(file, generated) {
|
|
|
134
138
|
checkSemanticBudget(budget);
|
|
135
139
|
writeFileSync(file, generated.source, 'utf8');
|
|
136
140
|
}
|
|
141
|
+
/** Emit recursive component types and the existing checked runtime injection protocol.
|
|
142
|
+
* @remarks Native reconstruction and mappings remain authoritative; generated TypeScript is a static description.
|
|
143
|
+
* @returns An authentic writable artifact, or explicit refusal. No legacy catalog or saved report is consumed.
|
|
144
|
+
* @throws TypeError For copied/foreign reconstruction handles. Caller cancellation returns a refusal.
|
|
145
|
+
*/
|
|
146
|
+
export async function generateComponentClient(expected, signal) {
|
|
147
|
+
inspectReconstructedComponentSource(expected);
|
|
148
|
+
const { budget } = inspectDirectOperation(expected.contract).context;
|
|
149
|
+
const failure = (kind, rule) => ({ kind, rule,
|
|
150
|
+
repair: COMPONENT_CLIENT_RUNTIME_REPAIR, usage: Object.freeze({ ...budget.usage() }) });
|
|
151
|
+
const check = () => { checkSemanticBudget(budget); if (signal?.aborted)
|
|
152
|
+
throw new Error('cancelled'); };
|
|
153
|
+
try {
|
|
154
|
+
check();
|
|
155
|
+
const capsule = { bytes: componentSourceCapsuleBytes(expected, signal) };
|
|
156
|
+
const literal = (value) => JSON.stringify(value).replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
|
|
157
|
+
const mappings = expected.mappings;
|
|
158
|
+
const input = mappings.find(mapping => mapping.direction.kind === 'input');
|
|
159
|
+
const output = mappings.find(mapping => mapping.direction.kind === 'output');
|
|
160
|
+
const request = lowerComponentShape(expected.contract, input, 'Request', check);
|
|
161
|
+
const response = lowerComponentShape(expected.contract, output, 'Response', check);
|
|
162
|
+
const faults = mappings.filter(mapping => mapping.direction.kind === 'fault').map((mapping, index) => ({ mapping,
|
|
163
|
+
shape: lowerComponentShape(expected.contract, mapping, `Fault_${index}`, check) }));
|
|
164
|
+
const grouped = mappings.some(mapping => mapping.kind === 'component-mapping'
|
|
165
|
+
&& inspectComponentValueMapping(mapping, expected.contract).applicationGroups);
|
|
166
|
+
const declarations = grouped ? [...new Set([...request.declarations, ...response.declarations, ...faults.flatMap(({ shape }) => shape.declarations)]),
|
|
167
|
+
`export type Request = ${request.type};`, `export type Response = ${response.type};`,
|
|
168
|
+
...faults.map(({ shape }, index) => `export type Fault_${index} = ${shape.type};`)] : [
|
|
169
|
+
...request.declarations, `export type Request = ${request.type};`,
|
|
170
|
+
...response.declarations, `export type Response = ${response.type};`,
|
|
171
|
+
...faults.flatMap(({ shape }, index) => [...shape.declarations, `export type Fault_${index} = ${shape.type};`])
|
|
172
|
+
];
|
|
173
|
+
const lines = [
|
|
174
|
+
'// Checked component client; inject checkedComponentRuntimeV1 from the package root.',
|
|
175
|
+
'// Scalar facets, ordered occurrence correlation and wildcard membership remain native runtime duties.',
|
|
176
|
+
...declarations,
|
|
177
|
+
'export interface Usage {readonly nodes: number; readonly work: number}',
|
|
178
|
+
'export interface Name {readonly namespace: string; readonly local: string}',
|
|
179
|
+
'export interface Options {',
|
|
180
|
+
' readonly localSource: string; readonly fileRoots: readonly string[]; readonly capsule: Uint8Array;',
|
|
181
|
+
' readonly sourceResources: readonly {readonly uri: string; readonly file: string; readonly canonicalUri?: string}[]; readonly sourceOrigins: readonly string[];',
|
|
182
|
+
' readonly sourceUri?: string;',
|
|
183
|
+
' readonly namespaceLocations?: readonly {readonly namespace: string; readonly location: string}[];',
|
|
184
|
+
' readonly standardLibraries?: readonly string[];',
|
|
185
|
+
' readonly recordSources?: readonly {readonly selector: {readonly portType: Name; readonly binding: Name; readonly operation: string}; readonly source: string}[];',
|
|
186
|
+
' readonly soap: {readonly service: Name; readonly port: string; readonly endpoint?: string;',
|
|
187
|
+
' readonly allowEndpoint?: (endpoint: URL) => boolean; readonly signal?: AbortSignal; readonly timeoutMs?: number;',
|
|
188
|
+
' readonly capabilities?: readonly string[]; readonly ca?: string;',
|
|
189
|
+
' readonly limits?: {readonly maxBytes?: number; readonly maxDepth?: number; readonly maxNodes?: number; readonly maxText?: number}};',
|
|
190
|
+
'}',
|
|
191
|
+
'export interface Failure {readonly kind: "incompatible-artifact" | "unsupported" | "missing-authority" | "resource-limit" | "cancelled" | "inconclusive" | "invalid-schema" | "scalar-invalid" | "value-invalid" | "xml-invalid" | "mismatch" | "transport" | "protocol";',
|
|
192
|
+
' readonly rule: string; readonly repair?: string; readonly phase?: "input" | "response"; readonly usage: Usage}',
|
|
193
|
+
'export interface NativeSuccess {readonly kind: "soap-response" | "soap-fault"; readonly value: unknown; readonly admitted: false;',
|
|
194
|
+
' readonly status: number; readonly usage: Usage; readonly responseBytes: Uint8Array;',
|
|
195
|
+
' readonly fault?: {readonly name: string; readonly code: Name; readonly string: string; readonly actor?: string}}',
|
|
196
|
+
`export interface Runtime {readonly version: ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}; execute(expectedBase64: string, input: unknown, options: Options, version: ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}): Promise<Failure | NativeSuccess>}`,
|
|
197
|
+
'type Common = {readonly admitted: false; readonly status: number; readonly usage: Usage; readonly responseBytes: Uint8Array};',
|
|
198
|
+
'export type Result = Failure | (Common & {readonly kind: "soap-response"; readonly value: Response})',
|
|
199
|
+
...faults.map(({ mapping }, index) => {
|
|
200
|
+
if (mapping.direction.kind !== 'fault')
|
|
201
|
+
throw new TypeError('Native fault mapping required');
|
|
202
|
+
return ` | (Common & {readonly kind: "soap-fault"; readonly value: Fault_${index}; readonly fault: {readonly name: ${literal(mapping.direction.name)}; readonly code: Name; readonly string: string; readonly actor?: string}})`;
|
|
203
|
+
}),
|
|
204
|
+
...(faults.length ? [] : [' | (Common & {readonly kind: "soap-fault"; readonly value: never; readonly fault: {readonly name: never; readonly code: Name; readonly string: string; readonly actor?: string}})']),
|
|
205
|
+
';',
|
|
206
|
+
`export const expectedCapsuleBase64 = ${literal(Buffer.from(capsule.bytes).toString('base64'))};`,
|
|
207
|
+
`export const selection = ${literal(JSON.stringify({ selector: expected.contract.selector, ...expected.selection }))};`,
|
|
208
|
+
'export function createClient(runtime: Runtime) {',
|
|
209
|
+
' return Object.freeze({',
|
|
210
|
+
` [${literal(expected.contract.selector.operation)}]: async (input: Request, options: Options): Promise<Result> => {`,
|
|
211
|
+
` if (runtime.version !== ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}) return {kind: "incompatible-artifact", rule: "generated-runtime-version", repair: ${literal(COMPONENT_CLIENT_RUNTIME_REPAIR)}, usage: {nodes: 0, work: 0}};`,
|
|
212
|
+
` return await runtime.execute(expectedCapsuleBase64, input, options, ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}) as Result;`,
|
|
213
|
+
' },', ' });', '}', '',
|
|
214
|
+
];
|
|
215
|
+
const source = composeGeneratedSource(lines.join('\n'), resolvePreamble('direct-client'));
|
|
216
|
+
if (Buffer.byteLength(source) > directLimit(budget, MAX_SOURCE_BYTES))
|
|
217
|
+
return failure('resource-limit', 'generated-source-byte-limit');
|
|
218
|
+
check();
|
|
219
|
+
const artifact = Object.freeze({ kind: 'generated-component-client', source, capsule: capsule.bytes,
|
|
220
|
+
admitted: false, usage: Object.freeze({ ...budget.usage() }) });
|
|
221
|
+
generatedArtifacts.set(artifact, budget);
|
|
222
|
+
componentArtifactOwners.set(artifact, expected);
|
|
223
|
+
return artifact;
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
if (budget.exhausted())
|
|
227
|
+
return failure('resource-limit', 'request-budget');
|
|
228
|
+
if (signal?.aborted)
|
|
229
|
+
return failure('cancelled', 'cooperative-cancellation');
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/** Emit a service client index and per-operation native artifacts using the existing component emitter.
|
|
234
|
+
* @remarks All operation artifacts are prepared before writing. The index contains no source authority.
|
|
235
|
+
* @returns Generator-owned relative capsule paths, keyed by exact operation name.
|
|
236
|
+
* @throws For foreign/mixed native operations, refused generation, cancellation or filesystem failure.
|
|
237
|
+
*/
|
|
238
|
+
export async function writeComponentServiceClient(expected, directory, signal, prepared) {
|
|
239
|
+
const operations = inspectComponentSourceService(expected);
|
|
240
|
+
const generated = [];
|
|
241
|
+
if (prepared && prepared.length !== operations.length)
|
|
242
|
+
throw new TypeError('Prepared operation artifacts must match the service');
|
|
243
|
+
for (const [index, operation] of operations.entries()) {
|
|
244
|
+
const artifact = prepared?.[index] ?? await generateComponentClient(operation, signal);
|
|
245
|
+
if (artifact.kind !== 'generated-component-client')
|
|
246
|
+
throw new Error(`Checked client refused: ${artifact.kind}: ${artifact.rule}`);
|
|
247
|
+
if (componentArtifactOwners.get(artifact) !== operation)
|
|
248
|
+
throw new TypeError('Prepared client belongs to another native operation');
|
|
249
|
+
generated.push(artifact);
|
|
250
|
+
}
|
|
251
|
+
const files = Object.create(null);
|
|
252
|
+
const lines = operations.flatMap((_, index) => [
|
|
253
|
+
`import {createClient as operation_${index}} from './operations/${index}/client.js';`,
|
|
254
|
+
`export * as Operation_${index} from './operations/${index}/client.js';`,
|
|
255
|
+
]);
|
|
256
|
+
lines.push("import type {Runtime, Options as OperationOptions} from './operations/0/client.js';", "export type Options = Omit<OperationOptions, 'capsule'>;", `export const selection = ${JSON.stringify(JSON.stringify(operations[0].selection))};`, 'export function createClient(runtime: Runtime) {', ' return Object.freeze({', ...operations.map((_, index) => ` ...operation_${index}(runtime),`), ' });', '}', '');
|
|
257
|
+
for (const [index, operation] of operations.entries()) {
|
|
258
|
+
const dir = path.join(directory, 'operations', String(index));
|
|
259
|
+
mkdirSync(dir, { recursive: true });
|
|
260
|
+
writeDirectClient(path.join(dir, 'client.ts'), generated[index]);
|
|
261
|
+
writeFileSync(path.join(dir, 'contract.json'), generated[index].capsule);
|
|
262
|
+
files[operation.contract.selector.operation] = `operations/${index}/contract.json`;
|
|
263
|
+
}
|
|
264
|
+
const { budget } = inspectDirectOperation(operations[0].contract).context;
|
|
265
|
+
checkSemanticBudget(budget);
|
|
266
|
+
writeFileSync(path.join(directory, 'client.ts'), composeGeneratedSource(lines.join('\n'), resolvePreamble('direct-client')), 'utf8');
|
|
267
|
+
return Object.freeze(files);
|
|
268
|
+
}
|
|
@@ -11,4 +11,3 @@ import type { CompiledCatalog } from "../compiler/schemaCompiler.js";
|
|
|
11
11
|
* @throws {Error} If a packaged preamble cannot be loaded or the TypeScript file cannot be written.
|
|
12
12
|
*/
|
|
13
13
|
export declare function generateOperations(outFile: string, compiled: CompiledCatalog): void;
|
|
14
|
-
//# sourceMappingURL=generateOperations.d.ts.map
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Generates a fully-typed operations interface for the SOAP client.
|
|
5
5
|
* This standalone interface enables mocking and testing without importing
|
|
6
6
|
* the concrete SOAP client class or its runtime dependencies.
|
|
7
|
+
* @since Unreleased
|
|
7
8
|
*/
|
|
8
9
|
import { writeGeneratedSource } from "../generation/writeGeneratedSource.js";
|
|
9
10
|
import { deriveClientName, pascal } from "../util/tools.js";
|
|
@@ -31,18 +32,25 @@ export function generateOperations(outFile, compiled) {
|
|
|
31
32
|
.map(line => line.replace(/\*\//g, "*\\/"));
|
|
32
33
|
// Collect type names used in method signatures for the import statement
|
|
33
34
|
const importedTypes = new Set();
|
|
35
|
+
const operationTypes = compiled.operations.map(operation => ({ operation,
|
|
36
|
+
input: operation.inputTypeName ?? (operation.inputElement ? pascal(operation.inputElement.local) : undefined),
|
|
37
|
+
output: operation.outputTypeName ?? (operation.outputElement ? pascal(operation.outputElement.local) : undefined),
|
|
38
|
+
}));
|
|
39
|
+
const reservedTypes = new Set(["Promise", "AsyncIterable", "AbortSignal", "StreamCallOptions", "StreamOperationResponse", `${clientName}Operations`]);
|
|
40
|
+
// @constraints Qualify model references when their public names overlap generated helpers or native transport types.
|
|
41
|
+
const namespaceModels = operationTypes.some(({ operation, input, output }) => [input, output, operation.stream?.recordTypeName].some(name => name !== undefined && reservedTypes.has(name)));
|
|
42
|
+
const modelType = (name) => namespaceModels ? `T.${name}` : name;
|
|
34
43
|
const methods = [];
|
|
35
44
|
// Does any operation opt into streaming? If so we also emit the
|
|
36
45
|
// StreamOperationResponse helper type below.
|
|
37
46
|
let anyStream = false;
|
|
38
|
-
for (const op of
|
|
39
|
-
const inTypeName = op.inputTypeName ?? (op.inputElement ? pascal(op.inputElement.local) : undefined);
|
|
40
|
-
const outTypeName = op.outputTypeName ?? (op.outputElement ? pascal(op.outputElement.local) : undefined);
|
|
47
|
+
for (const { operation: op, input: inTypeName, output: outTypeName } of operationTypes) {
|
|
41
48
|
if (!inTypeName && !outTypeName) {
|
|
42
49
|
continue;
|
|
43
50
|
}
|
|
44
|
-
|
|
45
|
-
const
|
|
51
|
+
// @constraints WSDL DTOs may be named Record and shadow the built-in utility type.
|
|
52
|
+
const inTs = inTypeName ? modelType(inTypeName) : "{[key: string]: unknown}";
|
|
53
|
+
const outTs = outTypeName ? modelType(outTypeName) : "unknown";
|
|
46
54
|
if (inTypeName)
|
|
47
55
|
importedTypes.add(inTypeName);
|
|
48
56
|
if (outTypeName)
|
|
@@ -56,8 +64,9 @@ export function generateOperations(outFile, compiled) {
|
|
|
56
64
|
const recordTs = op.stream.recordTypeName;
|
|
57
65
|
importedTypes.add(recordTs);
|
|
58
66
|
methods.push(`${docBlock} ${op.name}(\n` +
|
|
59
|
-
` args: ${inTs}
|
|
60
|
-
`
|
|
67
|
+
` args: ${inTs},\n` +
|
|
68
|
+
` options?: StreamCallOptions\n` +
|
|
69
|
+
` ): Promise<StreamOperationResponse<${modelType(recordTs)}>>;\n`);
|
|
61
70
|
}
|
|
62
71
|
else {
|
|
63
72
|
methods.push(`${docBlock} ${op.name}(\n` +
|
|
@@ -68,16 +77,26 @@ export function generateOperations(outFile, compiled) {
|
|
|
68
77
|
// Build sorted import list for deterministic output
|
|
69
78
|
const sortedImports = Array.from(importedTypes).sort();
|
|
70
79
|
const typeImport = sortedImports.length > 0
|
|
71
|
-
?
|
|
80
|
+
? namespaceModels
|
|
81
|
+
? `import type * as T from "./types${suffix}";\n\n`
|
|
82
|
+
: `import type {\n${sortedImports.map((t) => ` ${t},`).join("\n")}\n} from "./types${suffix}";\n\n`
|
|
72
83
|
: "";
|
|
73
84
|
// Emit the StreamOperationResponse helper type iff at least one operation
|
|
74
85
|
// is stream-configured. Kept inside operations.ts so that mocks and gateway
|
|
75
86
|
// code can import it without pulling in the SOAP runtime. The raw template
|
|
76
87
|
// lives in a sibling .tpl file so the IDE does not try to parse embedded
|
|
77
|
-
// TypeScript
|
|
78
|
-
// JavaScript assignment expressions.
|
|
88
|
+
// TypeScript generic defaults as JavaScript assignment expressions.
|
|
79
89
|
const streamHelper = anyStream
|
|
80
|
-
?
|
|
90
|
+
? `/**
|
|
91
|
+
* Per-call stream cancellation and total request/response deadline.
|
|
92
|
+
* @since Unreleased
|
|
93
|
+
*/
|
|
94
|
+
export interface StreamCallOptions {
|
|
95
|
+
signal?: AbortSignal;
|
|
96
|
+
timeoutMs?: number;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
` + loadRuntimeSource("operationsStreamHelper.tpl.txt").replace(/__CLIENT_NAME__/g, clientName)
|
|
81
100
|
: "";
|
|
82
101
|
const content = `/**
|
|
83
102
|
* Typed operations interface for the ${clientName} service.
|
|
@@ -20,4 +20,3 @@ import type { CompiledCatalog } from "../compiler/schemaCompiler.js";
|
|
|
20
20
|
* @throws {Error} If a packaged preamble cannot be loaded or the TypeScript file cannot be written.
|
|
21
21
|
*/
|
|
22
22
|
export declare function generateTypes(outFile: string, compiled: CompiledCatalog): void;
|
|
23
|
-
//# sourceMappingURL=generateTypes.d.ts.map
|
|
@@ -19,4 +19,3 @@ import type { CompiledCatalog } from "../compiler/schemaCompiler.js";
|
|
|
19
19
|
* @throws {Error} If a packaged preamble cannot be loaded or the TypeScript file cannot be written.
|
|
20
20
|
*/
|
|
21
21
|
export declare function generateUtils(outFile: string, compiled: CompiledCatalog): void;
|
|
22
|
-
//# sourceMappingURL=generateUtils.d.ts.map
|
|
@@ -48,7 +48,9 @@ export function generateUtils(outFile, compiled) {
|
|
|
48
48
|
return max === "unbounded" || (typeof max === "number" && max > 1);
|
|
49
49
|
}).sort(),
|
|
50
50
|
]));
|
|
51
|
-
const metas = JSON.stringify({ Attributes: attrSpec, ChildrenTypes: childType, RepeatedElements: repeatedElements
|
|
51
|
+
const metas = JSON.stringify({ Attributes: attrSpec, AttributeTypes: compiled.meta.attrType ?? {}, ChildrenTypes: childType, RepeatedElements: repeatedElements,
|
|
52
|
+
NonNillableElements: Object.fromEntries(Object.entries(compiled.meta.propMeta ?? {}).sort(([a], [b]) => a.localeCompare(b))
|
|
53
|
+
.map(([name, properties]) => [name, Object.keys(properties).filter(key => properties[key].nillable === false).sort()])) }, null, 2);
|
|
52
54
|
const dataTypes = `/**
|
|
53
55
|
* ${clientName} WSDL data types for proper serialization/deserialization.
|
|
54
56
|
* Used to distinguish between XML attributes and elements during conversion.
|
|
@@ -56,10 +58,14 @@ export function generateUtils(outFile, compiled) {
|
|
|
56
58
|
export interface ${clientName}DataTypes {
|
|
57
59
|
/** Maps type names to lists of property names that should be treated as XML attributes */
|
|
58
60
|
Attributes: Record<string, readonly string[]>;
|
|
61
|
+
/** Maps attributes to their projected scalar types for XML response conversion. */
|
|
62
|
+
AttributeTypes?: Record<string, Readonly<Record<string, string>>>;
|
|
59
63
|
/** Maps type names to their child element types for recursive processing */
|
|
60
64
|
ChildrenTypes: Record<string, Readonly<Record<string, string>>>;
|
|
61
65
|
/** Maps type names to repeated child properties; optional for custom metadata compatibility. */
|
|
62
66
|
RepeatedElements?: Record<string, readonly string[]>;
|
|
67
|
+
/** Distinguishes empty complex nodes collapsed to null by node-soap from declared nullable children. */
|
|
68
|
+
NonNillableElements?: Record<string, readonly string[]>;
|
|
63
69
|
}
|
|
64
70
|
|
|
65
71
|
export const ${clientConstant}_DATA_TYPES: ${clientName}DataTypes = ${metas} as const;\n`;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { SemanticContext } from './semanticContext.js';
|
|
2
|
+
import type { SemanticParticle } from './particleSemanticView.js';
|
|
3
|
+
import type { DirectProjectionPlan, DirectProjectionSlot } from './directStructurePlan.js';
|
|
4
|
+
export interface ApplicationGroupName {
|
|
5
|
+
readonly target: string;
|
|
6
|
+
readonly propertyName?: string;
|
|
7
|
+
readonly typeName?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ApplicationGroupsOptions {
|
|
10
|
+
readonly names?: readonly ApplicationGroupName[];
|
|
11
|
+
}
|
|
12
|
+
export interface ApplicationGroupTarget {
|
|
13
|
+
readonly target: string;
|
|
14
|
+
readonly role: 'choice' | 'sequence' | 'alternative';
|
|
15
|
+
readonly source: string;
|
|
16
|
+
readonly defaults: {
|
|
17
|
+
readonly propertyName?: string;
|
|
18
|
+
readonly typeName: string;
|
|
19
|
+
};
|
|
20
|
+
readonly resolved: {
|
|
21
|
+
readonly propertyName?: string;
|
|
22
|
+
readonly typeName: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface ApplicationGroupRecord {
|
|
26
|
+
readonly source: string;
|
|
27
|
+
readonly disposition: 'grouped' | 'retained-ordered' | 'compact';
|
|
28
|
+
readonly reason: string;
|
|
29
|
+
}
|
|
30
|
+
export type GroupNode = {
|
|
31
|
+
readonly particle: SemanticParticle;
|
|
32
|
+
readonly slot?: DirectProjectionSlot;
|
|
33
|
+
readonly children: readonly GroupNode[];
|
|
34
|
+
readonly target?: ApplicationGroupTarget;
|
|
35
|
+
readonly alternatives?: readonly ApplicationGroupTarget[];
|
|
36
|
+
};
|
|
37
|
+
export interface ApplicationGroupPlan {
|
|
38
|
+
readonly records: Readonly<Record<string, GroupNode>>;
|
|
39
|
+
readonly targets: readonly ApplicationGroupTarget[];
|
|
40
|
+
readonly dispositions: readonly ApplicationGroupRecord[];
|
|
41
|
+
}
|
|
42
|
+
/** Stable private record symbol shared across operation directions and schema scopes. */
|
|
43
|
+
export declare const applicationRecordName: (id: string) => string;
|
|
44
|
+
/** Copy strict data-only generation options, rejecting malformed arrays before any source work. */
|
|
45
|
+
export declare function parseApplicationGroups(value: unknown): ApplicationGroupsOptions;
|
|
46
|
+
/** Derive finite group definitions from exact qualified records; no caller inventory is trusted. */
|
|
47
|
+
export declare function planApplicationGroups(context: SemanticContext, projection: DirectProjectionPlan, options: ApplicationGroupsOptions, checkpoint: () => void): ApplicationGroupPlan;
|
|
48
|
+
export declare class ApplicationGroupValueError extends Error {
|
|
49
|
+
}
|
|
50
|
+
/** Convert owned data between grouped and existing ordered values without adding XML wrappers.
|
|
51
|
+
* @constraints Input must first pass the bounded data-only owner; recursive calls are depth-limited.
|
|
52
|
+
*/
|
|
53
|
+
export declare function mapApplicationGroups(plan: ApplicationGroupPlan, projection: DirectProjectionPlan, input: unknown, direction: 'to-native' | 'from-native', check: () => void): unknown;
|