Skip to content

Commit

Permalink
Merge pull request #1233 from aml-org/publish-5.0.2
Browse files Browse the repository at this point in the history
publish 5.0.2
  • Loading branch information
arielmirra authored Dec 13, 2021
2 parents 9971ffd + 2bfc0fd commit c35b590
Show file tree
Hide file tree
Showing 291 changed files with 8,496 additions and 8,055 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ pipeline {
anyOf {
branch 'master'
branch 'develop'
branch 'release/*'
}
}
steps {
Expand Down Expand Up @@ -116,7 +117,6 @@ pipeline {
anyOf {
branch 'develop'
branch 'master'
branch 'release/*'
branch 'support/*'
}
}
Expand Down
50 changes: 34 additions & 16 deletions adhoc-cli/src/main/scala/amf/adhoc/cli/Main.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package amf.adhoc.cli

import amf.aml.client.scala.AMLConfiguration
import amf.aml.client.scala.model.document.Dialect
import amf.apicontract.client.scala.APIConfiguration
import amf.core.client.common.transform.PipelineId
import amf.core.client.scala.AMFParseResult
import amf.core.client.scala.config.RenderOptions
import amf.core.internal.remote.Mimes

Expand Down Expand Up @@ -47,23 +47,42 @@ object Main {
}

private def apiParse(args: Array[String]): Unit = {
// For comprehensions skip Exceptions like File Not Found Exception
val parsingFuture = APIConfiguration
.API()
var parsedExtensions: Array[Dialect] = Array()
val withSemex = args.contains("--extensions")
if (withSemex) {
val start = args.indexOf("--extensions") + 1
val end = {
val nextArgIdx = args.indexWhere(_.startsWith("--"), start)
val lastIdx = args.length
math.max(nextArgIdx, lastIdx)
}
val extensions = args.slice(start, end)

parsedExtensions = extensions
.map { e =>
Await.result(AMLConfiguration.predefined().baseUnitClient().parseDialect(s"file://$e"), Duration.Inf)
}
.map(_.dialect)
}

var parsingConf = APIConfiguration.API()
parsedExtensions.foreach(e => parsingConf = parsingConf.withExtensions(e))

val parsingFuture = parsingConf
.baseUnitClient()
.parse(s"file://${args(1)}")
val parsing = Await.result(parsingFuture, Duration.Inf)
var baseUnit = parsing.baseUnit
val withLexical = args.length > 2 && args(2) == "--with-lexical"

if (!withLexical) {
val transformation =
APIConfiguration
.fromSpec(parsing.sourceSpec)
.baseUnitClient()
.transform(parsing.baseUnit, PipelineId.Editing)
baseUnit = transformation.baseUnit
}
val withLexical = args.contains("--with-lexical")

var transformationConf = APIConfiguration.fromSpec(parsing.sourceSpec)
parsedExtensions.foreach(e => transformationConf = transformationConf.withExtensions(e))

val transformation =
transformationConf
.baseUnitClient()
.transform(parsing.baseUnit, PipelineId.Editing)
baseUnit = transformation.baseUnit

val renderOptions = if (withLexical) {
RenderOptions().withPrettyPrint.withSourceMaps.withSourceInformation
Expand All @@ -72,8 +91,7 @@ object Main {
}

println {
APIConfiguration
.API()
transformationConf
.withRenderOptions(renderOptions)
.baseUnitClient()
.render(baseUnit, Mimes.`application/ld+json`)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import amf.apicontract.internal.validation.definitions.ParserSideValidations.Mal
import amf.core.client.scala.config.ParsingOptions
import amf.core.client.scala.model.document.ExternalFragment
import amf.core.client.scala.parse.document.{ParsedReference, ParserContext}
import amf.shapes.internal.spec.common.{JSONSchemaDraft7SchemaVersion, JSONSchemaVersion}
import amf.shapes.internal.spec.common.{JSONSchemaDraft7SchemaVersion, SchemaVersion}

import scala.collection.mutable

Expand All @@ -20,7 +20,7 @@ abstract class AsyncWebApiContext(loc: String,

override val factory: AsyncSpecVersionFactory

override val defaultSchemaVersion: JSONSchemaVersion = JSONSchemaDraft7SchemaVersion
override val defaultSchemaVersion: SchemaVersion = JSONSchemaDraft7SchemaVersion

override def validateRefFormatWithError(ref: String): Boolean = {
if (ref.contains("#") && !ref.contains("#/")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ import amf.aml.internal.semantic.SemanticExtensionsFacade
import amf.apicontract.internal.spec.common.emitter.SpecAwareContext
import amf.apicontract.internal.spec.common.{OasParameter, WebApiDeclarations}
import amf.apicontract.internal.spec.oas.parser.context.OasWebApiContext
import amf.apicontract.internal.validation.definitions.ParserSideValidations.{ClosedShapeSpecification, ClosedShapeSpecificationWarning}
import amf.apicontract.internal.validation.definitions.ParserSideValidations.{
ClosedShapeSpecification,
ClosedShapeSpecificationWarning
}
import amf.core.client.scala.config.ParsingOptions
import amf.core.client.scala.model.document.{ExternalFragment, Fragment, RecursiveUnit}
import amf.core.client.scala.model.domain.{AmfObject, Shape}
import amf.core.client.scala.model.domain.extensions.CustomDomainProperty
import amf.core.client.scala.model.domain.{AmfObject, Shape}
import amf.core.client.scala.parse.document.{ParsedReference, ParserContext}
import amf.core.internal.parser._
import amf.core.internal.parser.domain.{Annotations, FragmentRef, SearchScope}
Expand All @@ -19,7 +22,7 @@ import amf.core.internal.unsafe.PlatformSecrets
import amf.core.internal.utils.{AliasCounter, IdCounter}
import amf.shapes.client.scala.model.domain.AnyShape
import amf.shapes.internal.spec.common.parser.{SpecSyntax, YMapEntryLike}
import amf.shapes.internal.spec.common.{JSONSchemaDraft4SchemaVersion, JSONSchemaVersion, SchemaVersion}
import amf.shapes.internal.spec.common.{JSONSchemaDraft4SchemaVersion, SchemaVersion}
import amf.shapes.internal.spec.contexts.JsonSchemaRefGuide
import amf.shapes.internal.spec.datanode.DataNodeParserContext
import amf.shapes.internal.spec.jsonschema.ref.{AstFinder, AstIndex, AstIndexBuilder, JsonSchemaInference}
Expand Down Expand Up @@ -66,7 +69,7 @@ abstract class WebApiContext(loc: String,
override def handle[T](error: YError, defaultValue: T): T = syamleh.handle(error, defaultValue)
override def handle(location: SourceLocation, e: SyamlException): Unit = syamleh.handle(location, e)

override val defaultSchemaVersion: JSONSchemaVersion = JSONSchemaDraft4SchemaVersion
override val defaultSchemaVersion: SchemaVersion = JSONSchemaDraft4SchemaVersion

def validateRefFormatWithError(ref: String): Boolean = true

Expand Down Expand Up @@ -200,7 +203,10 @@ abstract class WebApiContext(loc: String,
protected def nextValidation(node: AmfObject, shape: String, ast: YMap): Unit =
throwClosedShapeError(node, s"Cannot validate unknown node type $shape for $spec", ast)

protected def throwClosedShapeError(node: AmfObject, message: String, entry: YPart, isWarning: Boolean = false): Unit =
protected def throwClosedShapeError(node: AmfObject,
message: String,
entry: YPart,
isWarning: Boolean = false): Unit =
if (isWarning) eh.warning(ClosedShapeSpecificationWarning, node, message, entry.location)
else eh.violation(ClosedShapeSpecification, node, message, entry.location)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ import amf.apicontract.internal.spec.raml.parser.context.RamlWebApiContext
import amf.core.client.scala.config.ParsingOptions
import amf.core.client.scala.parse.document.{ParsedReference, ParserContext}
import amf.core.internal.remote.{JsonSchema, Spec}
import amf.shapes.internal.spec.common.JSONSchemaVersion
import amf.shapes.internal.spec.common.SchemaVersion
import amf.shapes.internal.spec.common.parser.SpecSyntax

class JsonSchemaWebApiContext(loc: String,
refs: Seq[ParsedReference],
private val wrapped: ParserContext,
private val ds: Option[OasWebApiDeclarations],
options: ParsingOptions = ParsingOptions(),
override val defaultSchemaVersion: JSONSchemaVersion)
override val defaultSchemaVersion: SchemaVersion)
extends OasWebApiContext(loc, refs, options, wrapped, ds) {

override val factory: OasSpecVersionFactory = Oas3VersionFactory()(this)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import amf.core.client.scala.config.ParsingOptions
import amf.core.client.scala.parse.document.{ParsedReference, ParserContext}
import amf.core.internal.remote.{Oas20, Spec}
import amf.shapes.internal.spec.common.parser.SpecSyntax
import amf.shapes.internal.spec.common.{OAS20SchemaVersion, SchemaPosition, SchemaVersion}

class Oas2WebApiContext(loc: String,
refs: Seq[ParsedReference],
Expand All @@ -16,6 +17,8 @@ class Oas2WebApiContext(loc: String,
override val spec: Spec = Oas20
override val syntax: SpecSyntax = Oas2Syntax

override val defaultSchemaVersion: SchemaVersion = OAS20SchemaVersion.apply(SchemaPosition.Other)

override def makeCopy(): Oas2WebApiContext =
new Oas2WebApiContext(rootContextDocument, refs, this, Some(declarations), options)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import amf.core.client.scala.config.ParsingOptions
import amf.core.client.scala.parse.document.{ParsedReference, ParserContext}
import amf.core.internal.remote.{Oas30, Spec}
import amf.shapes.internal.spec.common.parser.SpecSyntax
import amf.shapes.internal.spec.common.{OAS30SchemaVersion, SchemaPosition, SchemaVersion}

class Oas3WebApiContext(loc: String,
refs: Seq[ParsedReference],
Expand All @@ -16,6 +17,8 @@ class Oas3WebApiContext(loc: String,
override val spec: Spec = Oas30
override val syntax: SpecSyntax = Oas3Syntax

override val defaultSchemaVersion: SchemaVersion = OAS30SchemaVersion.apply(SchemaPosition.Other)

override def makeCopy(): Oas3WebApiContext =
new Oas3WebApiContext(rootContextDocument, refs, this, Some(declarations), options)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import amf.apicontract.internal.transformation.stages.{ExtensionsResolutionStage
import amf.core.client.common.transform._
import amf.core.client.common.validation.{AmfProfile, ProfileName}
import amf.core.client.scala.transform.{TransformationPipeline, TransformationStep}
import amf.core.internal.transform.stages.UrlShortenerStage
import amf.core.internal.transform.stages.{SourceInformationStage, UrlShortenerStage}
import amf.shapes.internal.domain.resolution.ShapeNormalizationStage

class AmfEditingPipeline private[amf] (urlShortening: Boolean = true, override val name: String)
Expand All @@ -33,7 +33,7 @@ class AmfEditingPipeline private[amf] (urlShortening: Boolean = true, override v
new PayloadAndParameterResolutionStage(profileName),
new AnnotationRemovalStage(),
SemanticExtensionFlatteningStage
) ++ url
) ++ url :+ SourceInformationStage // source info stage must be invoked after url shortening
}

val ID: String = PipelineId.Editing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@ import amf.apicontract.internal.transformation.stages.{ExtensionsResolutionStage
import amf.core.client.common.transform._
import amf.core.client.common.validation.{AmfProfile, ProfileName}
import amf.core.client.scala.transform.{TransformationPipeline, TransformationStep}
import amf.core.internal.transform.stages.{CleanReferencesStage, DeclarationsRemovalStage, ExternalSourceRemovalStage}
import amf.core.internal.transform.stages.{
CleanReferencesStage,
DeclarationsRemovalStage,
ExternalSourceRemovalStage,
SourceInformationStage
}
import amf.shapes.internal.domain.resolution.ShapeNormalizationStage

class AmfTransformationPipeline private[amf] (override val name: String) extends TransformationPipeline() {
Expand All @@ -33,7 +38,8 @@ class AmfTransformationPipeline private[amf] (override val name: String) extends
new CleanReferencesStage(),
new DeclarationsRemovalStage(),
new AnnotationRemovalStage(),
SemanticExtensionFlatteningStage
SemanticExtensionFlatteningStage,
SourceInformationStage
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import amf.core.client.common.transform._
import amf.core.client.common.validation.{Async20Profile, ProfileName}
import amf.core.client.scala.transform.TransformationStep
import amf.core.internal.remote.AsyncApi20
import amf.core.internal.transform.stages.SourceInformationStage
import amf.shapes.internal.domain.resolution.ShapeNormalizationStage

class Async20EditingPipeline private (urlShortening: Boolean = true, override val name: String)
Expand All @@ -40,7 +41,7 @@ class Async20EditingPipeline private (urlShortening: Boolean = true, override va
new PathDescriptionNormalizationStage(profileName, keepEditingInfo = true),
new AnnotationRemovalStage(),
SemanticExtensionFlatteningStage
) ++ url
) ++ url :+ SourceInformationStage
}

object Async20EditingPipeline {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@ import amf.apicontract.internal.transformation.stages.WebApiReferenceResolutionS
import amf.core.client.common.transform._
import amf.core.client.common.validation.Async20Profile
import amf.core.client.scala.transform.{TransformationPipeline, TransformationStep}
import amf.core.internal.transform.stages.{CleanReferencesStage, DeclarationsRemovalStage, ExternalSourceRemovalStage}
import amf.core.internal.transform.stages.{
CleanReferencesStage,
DeclarationsRemovalStage,
ExternalSourceRemovalStage,
SourceInformationStage
}
import amf.core.internal.remote.AsyncApi20
import amf.shapes.internal.domain.resolution.ShapeNormalizationStage

Expand All @@ -35,7 +40,8 @@ class Async20TransformationPipeline private (override val name: String) extends
new CleanReferencesStage(),
new DeclarationsRemovalStage(),
new AnnotationRemovalStage(),
SemanticExtensionFlatteningStage
SemanticExtensionFlatteningStage,
SourceInformationStage
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import amf.core.client.scala.AMFGraphConfiguration
import amf.core.client.scala.errorhandling.AMFErrorHandler
import amf.core.client.scala.model.document.BaseUnit
import amf.core.client.scala.transform.{TransformationPipeline, TransformationPipelineRunner, TransformationStep}
import amf.core.internal.transform.stages.{ExternalSourceRemovalStage, ReferenceResolutionStage}
import amf.core.internal.transform.stages.{ExternalSourceRemovalStage, ReferenceResolutionStage, SourceInformationStage}
import amf.core.internal.validation.ValidationConfiguration
import amf.shapes.internal.domain.resolution.ShapeNormalizationStage

Expand All @@ -27,6 +27,7 @@ class ValidationTransformationPipeline private[amf] (profile: ProfileName,
new ResponseExamplesResolutionStage(),
new PayloadAndParameterResolutionStage(profile),
SemanticExtensionFlatteningStage,
SourceInformationStage,
new AnnotationRemovalStage(),
)
}
Expand Down
4 changes: 2 additions & 2 deletions amf-apicontract.versions
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
amf.apicontract=5.0.1
amf.aml=6.0.1
amf.apicontract=5.0.2
amf.aml=6.0.2
amf.model=3.2.0
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

cd ./amf-cli/js || exit

echo 'globalThis.Ajv = require("ajv")' >> amf.js || exit
echo 'globalThis.Ajv = require("ajv")' > amf.js || exit
cat ./target/artifact/amf-client-module.js >> amf.js || exit
chmod a+x amf.js

Expand Down
35 changes: 0 additions & 35 deletions amf-cli/js/build-scripts/deploy-develop.sh

This file was deleted.

12 changes: 0 additions & 12 deletions amf-cli/js/build-scripts/pre-deploy.sh

This file was deleted.

Loading

0 comments on commit c35b590

Please sign in to comment.