diff --git a/packages/apidom-ast/README.md b/packages/apidom-ast/README.md index 4a929e347..9e0363039 100644 --- a/packages/apidom-ast/README.md +++ b/packages/apidom-ast/README.md @@ -38,18 +38,18 @@ along with [formatters for canonical block scalars](https://github.com/swagger-a ## Traversal -`@swagger-api/apidom-ast` comes with its own traversal algorithm convenient for traversing [CST](https://en.wikipedia.org/wiki/Parse_tree) or [AST](https://en.wikipedia.org/wiki/AST). +`@swagger-api/apidom-ast` comes with its own traversal algorithm convenient for traversing [CST](https://en.wikipedia.org/wiki/Parse_tree) or [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree). ### visit -[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L214) will walk through an CST/AST using a depth first traversal, calling +[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L442) will walk through an CST/AST using a depth first traversal, calling the visitor's enter function at each node in the traversal, and calling the leave function after visiting that node and all of its child nodes. By returning different values from the enter and leave functions, the behavior of the visitor can be altered, including skipping over a sub-tree of the Node (by returning false), editing the Node Tree by returning a value or null -to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L64). +to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L52). When using `visit` to edit an Node Tree, the original Node Tree will not be modified, and a new version of the Node Tree with the changes applied will be returned from the @@ -90,9 +90,9 @@ Configuration option | Type | Default | Description `keyMap` | `Object` | `null` | Defines how nodes map to it's children. `state` | `Object` | `{}` | Additional state that is provided to the visitor. State is merged inti visitor object in following manner: `Object.assign(visitor, state)` `breakSymbol` | `Object` | `{}` | Defines a symbol that can break the traversal. Symbol is compared by strict equality (`===`). -`visitFnGetter` | `Function` | [getVisitFn](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L33) | Function that extract appropriate method from the visitor given specific Node type. -`nodeTypeGetter` | `Function` | [getNodeType](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L67) | Node type extractor function. -`nodePredicate` | `Function` | [isNode](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L70) | Predicate that checks if particular Node can be really considered a Node. +`visitFnGetter` | `Function` | [getVisitFn](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L12) | Function that extract appropriate method from the visitor given specific Node type. +`nodeTypeGetter` | `Function` | [getNodeType](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L57) | Node type extractor function. +`nodePredicate` | `Function` | [isNode](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L62) | Predicate that checks if particular Node can be really considered a Node. `detectCycles` | `Boolean` | `true` | If the structure that needs to be traversed is represented as directed cyclic graph, `visit` will skip Nodes that have already been traversed to avoid infinite recursion. diff --git a/packages/apidom-core/README.md b/packages/apidom-core/README.md index 77d0e6571..a5f11eb48 100644 --- a/packages/apidom-core/README.md +++ b/packages/apidom-core/README.md @@ -14,7 +14,7 @@ You can install this package via [npm CLI](https://docs.npmjs.com/cli) by runnin ## Base namespace -Base namespace consists of [four higher order elements](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core/src/elements) implemented on top +Base namespace consists of [three higher order elements](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core/src/elements) implemented on top of [primitive ones](https://github.com/refractproject/minim/tree/master/lib/primitives). ```js @@ -578,14 +578,14 @@ objectElement.getMember('info').value.id; // 'OnReGGrO7fMd9ztacvGfwGbOdGKuOFLiQQ ### visit -[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-core/src/traversal/visitor.ts#L104-L103) will walk through an AST using a depth first traversal, calling +[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-core/src/traversal/visitor.ts#L128) will walk through an AST using a depth first traversal, calling the visitor's enter function at each node in the traversal, and calling the leave function after visiting that node and all of its child nodes. By returning different values from the enter and leave functions, the behavior of the visitor can be altered, including skipping over a sub-tree of the ApiDOM (by returning false), editing the ApiDOM by returning a value or null -to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-core/src/index.ts#L52). +to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L52). When using `visit` to edit an ApiDOM, the original ApiDOM will not be modified, and a new version of the ApiDOM with the changes applied will be returned from the @@ -604,7 +604,7 @@ const element = new ObjectElement({ a: 1 }); const newElement = visit(element, visitor); // => ObjectElement<{a: 2}> ``` -This function originally comes from [@swagger-api/apidom-ast package](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts) +This function originally comes from [@swagger-api/apidom-ast package](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts) and is originally designed to work with [CST](https://en.wikipedia.org/wiki/Parse_tree). `apidom-core` package imports it, specializes it to work with ApiDOM and re-export it. diff --git a/packages/apidom-ns-api-design-systems/README.md b/packages/apidom-ns-api-design-systems/README.md index 3d28caac7..6929d4701 100644 --- a/packages/apidom-ns-api-design-systems/README.md +++ b/packages/apidom-ns-api-design-systems/README.md @@ -53,7 +53,7 @@ isMainElement(mainElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts) and and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts#L16) and and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts#L6). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-arazzo-1/README.md b/packages/apidom-ns-arazzo-1/README.md index 694e8c768..3dfed0fbe 100644 --- a/packages/apidom-ns-arazzo-1/README.md +++ b/packages/apidom-ns-arazzo-1/README.md @@ -53,7 +53,7 @@ isArazzoSpecification1Element(arazzoElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts#L18) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts#L6). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-asyncapi-2/README.md b/packages/apidom-ns-asyncapi-2/README.md index 296656084..230c74be0 100644 --- a/packages/apidom-ns-asyncapi-2/README.md +++ b/packages/apidom-ns-asyncapi-2/README.md @@ -22,7 +22,7 @@ You can install this package via [npm CLI](https://docs.npmjs.com/cli) by runnin ## AsyncApi 2.x.y namespace AsyncApi 2.x.y namespace consists of [number of elements](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-asyncapi-2/src/elements) implemented on top -of [primitive ones](https://github.com/refractproject/minim/tree/main/lib/primitives). +of [primitive ones](https://github.com/refractproject/minim/tree/master/lib/primitives). ```js import { createNamespace } from '@swagger-api/apidom-core'; @@ -62,7 +62,7 @@ isAsyncApi2Element(asyncApiElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L16) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L6). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js @@ -193,41 +193,41 @@ Only fully implemented specification objects should be checked here. ### Specification Objects -- [x] [AsyncAPI Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SObject) -- [x] [AsyncAPI Version String](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SVersionString) -- [x] [Identifier](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SIdString) -- [x] [Info Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SIdString) -- [x] [Contact Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#contactObject) -- [x] [License Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#license-object) -- [x] [Servers Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serversObject) -- [x] [Server Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverObject) -- [x] [Server Variable Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverVariableObject) -- [x] [Default Content Type](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#defaultContentTypeString) -- [x] [Channels Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channelsObject) -- [x] [Channel Item Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channelItemObject) -- [x] [Operation Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operationObject) -- [x] [Operation Trait Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operationTraitObject) -- [x] [Message Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageObject) -- [x] [Message Trait Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageTraitObject) -- [x] [Message Example Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageExampleObject) -- [x] [Tags Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#tagsObject) -- [x] [Tag Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#tag-object) -- [x] [External Documentation Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#externalDocumentationObject) -- [x] [Components Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#componentsObject) -- [x] [Reference Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#referenceObject) -- [x] [Schema Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#schemaObject) -- [x] [Security Scheme Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#securitySchemeObject) -- [x] [Security Requirement Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#security-requirement-object) -- [x] [OAuth Flows Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#oauth-flows-object) -- [x] [OAuth Flow Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#oauth-flow-object) -- [x] [Server Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverBindingsObject) -- [x] [Parameters Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#parametersObject) -- [x] [Parameter Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#parameterObject) -- [x] [Channel Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channel-bindings-object) -- [x] [Operation Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operation-bindings-object) -- [x] [Message Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageBindingsObject) -- [x] [Correlation ID Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#correlationIdObject) -- [x] [Specification Extension](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#specificationExtensions) +- [x] [AsyncAPI Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#asyncapi-object) +- [x] [AsyncAPI Version String](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#asyncapi-version-string) +- [x] [Identifier](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#identifier) +- [x] [Info Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#info-object) +- [x] [Contact Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#contact-object) +- [x] [License Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#license-object) +- [x] [Servers Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#servers-object) +- [x] [Server Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#server-object) +- [x] [Server Variable Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#server-variable-object) +- [x] [Default Content Type](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#default-content-type) +- [x] [Channels Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#channels-object) +- [x] [Channel Item Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#channel-item-object) +- [x] [Operation Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#operation-object) +- [x] [Operation Trait Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#operation-trait-object) +- [x] [Message Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#message-object) +- [x] [Message Trait Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#message-trait-object) +- [x] [Message Example Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#-message-example-object) +- [x] [Tags Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#tags-object) +- [x] [Tag Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#tag-object) +- [x] [External Documentation Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#external-documentation-object) +- [x] [Components Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#components-object) +- [x] [Reference Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#reference-object) +- [x] [Schema Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#schema-object) +- [x] [Security Scheme Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#security-scheme-object) +- [x] [Security Requirement Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#security-requirement-object) +- [x] [OAuth Flows Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#oauth-flows-object) +- [x] [OAuth Flow Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#oauth-flow-object) +- [x] [Server Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#server-bindings-object) +- [x] [Parameters Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#parameters-object) +- [x] [Parameter Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#parameter-object) +- [x] [Channel Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#channel-bindings-object) +- [x] [Operation Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#operation-bindings-object) +- [x] [Message Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#message-bindings-object) +- [x] [Correlation ID Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#correlation-id-object) +- [x] [Specification Extension](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#specification-extensions) ### Binding Objects diff --git a/packages/apidom-ns-json-schema-2019-09/README.md b/packages/apidom-ns-json-schema-2019-09/README.md index d79fbf8d0..44015b495 100644 --- a/packages/apidom-ns-json-schema-2019-09/README.md +++ b/packages/apidom-ns-json-schema-2019-09/README.md @@ -53,7 +53,7 @@ isJSONSchemaElement(jsonSchemaElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L8) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L3). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-json-schema-2020-12/README.md b/packages/apidom-ns-json-schema-2020-12/README.md index d83e93cd5..63d68de6c 100644 --- a/packages/apidom-ns-json-schema-2020-12/README.md +++ b/packages/apidom-ns-json-schema-2020-12/README.md @@ -53,7 +53,7 @@ isJSONSchemaElement(jsonSchemaElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L7) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L3). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-json-schema-draft-4/README.md b/packages/apidom-ns-json-schema-draft-4/README.md index e1b9edfba..e6eb8e348 100644 --- a/packages/apidom-ns-json-schema-draft-4/README.md +++ b/packages/apidom-ns-json-schema-draft-4/README.md @@ -57,7 +57,7 @@ isJSONSchemaElement(jsonSchemaElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-4/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-4/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-4/src/traversal/visitor.ts#L16) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-4/src/traversal/visitor.ts#L6). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-json-schema-draft-6/README.md b/packages/apidom-ns-json-schema-draft-6/README.md index 89f25b1f9..577153db9 100644 --- a/packages/apidom-ns-json-schema-draft-6/README.md +++ b/packages/apidom-ns-json-schema-draft-6/README.md @@ -55,7 +55,7 @@ isJSONSchemaElement(jsonSchemaElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-6/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-6/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-6/src/traversal/visitor.ts#L8) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-6/src/traversal/visitor.ts#L3). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-json-schema-draft-7/README.md b/packages/apidom-ns-json-schema-draft-7/README.md index 6677e740a..f3364cf05 100644 --- a/packages/apidom-ns-json-schema-draft-7/README.md +++ b/packages/apidom-ns-json-schema-draft-7/README.md @@ -54,7 +54,7 @@ isJSONSchemaElement(jsonSchemaElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-7/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-7/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-7/src/traversal/visitor.ts#L8) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-draft-7/src/traversal/visitor.ts#L3). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-openapi-2/README.md b/packages/apidom-ns-openapi-2/README.md index 0b214a860..c102c8573 100644 --- a/packages/apidom-ns-openapi-2/README.md +++ b/packages/apidom-ns-openapi-2/README.md @@ -55,7 +55,7 @@ isSwaggerElement(swaggerElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-2/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-2/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-2/src/traversal/visitor.ts#L24) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-2/src/traversal/visitor.ts#L6). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js @@ -205,7 +205,7 @@ Only fully implemented specification objects should be checked here. - [x] [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-schema-object) - [x] [XML Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-xml-object) - [x] [Definitions Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-definitions-object) -- [x] [Parameters Definitions Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-paramters-definitions-object) +- [x] [Parameters Definitions Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-parameters-definitions-object) - [x] [Responses Definitions Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-responses-definitions-object) - [x] [Security Definitions Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-security-definitions-object) - [x] [Security Scheme Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#user-content-security-scheme-object) diff --git a/packages/apidom-ns-openapi-3-0/README.md b/packages/apidom-ns-openapi-3-0/README.md index f7a5f5ffa..8b83a5509 100644 --- a/packages/apidom-ns-openapi-3-0/README.md +++ b/packages/apidom-ns-openapi-3-0/README.md @@ -59,7 +59,7 @@ isOpenApi3_0Element(openApiElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-0/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-0/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-0/src/traversal/visitor.ts#L24) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-0/src/traversal/visitor.ts#L6). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js diff --git a/packages/apidom-ns-openapi-3-1/README.md b/packages/apidom-ns-openapi-3-1/README.md index abc6fca7e..cb6a458a8 100644 --- a/packages/apidom-ns-openapi-3-1/README.md +++ b/packages/apidom-ns-openapi-3-1/README.md @@ -53,7 +53,7 @@ isOpenApi3_1Element(openApiElement); // => true ## Traversal Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package. -This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-1/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-1/src/traversal/visitor.ts#L4). +This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-1/src/traversal/visitor.ts#L24) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-openapi-3-1/src/traversal/visitor.ts#L6). To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit). ```js @@ -806,33 +806,33 @@ toValue(normalized) Only fully implemented specification objects should be checked here. -- [x] [OpenAPI Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#oasObject) -- [x] [Info Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#infoObject) -- [x] [Contact Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#contactObject) -- [x] [License Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#licenseObject) -- [x] [Server Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#serverObject) -- [x] [Server Variable Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#serverVariableObject) -- [x] [Components](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#componentsObject) -- [x] [Paths Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#pathsObject) -- [x] [Path Item Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#pathItemObject) -- [x] [Operation Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#operationObject) -- [x] [External Documentation Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#externalDocumentationObject) -- [x] [Parameter Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterObject) -- [x] [Request Body Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#requestBodyObject) -- [x] [Media Type Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#mediaTypeObject) -- [x] [Encoding Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#encodingObject) -- [x] [Responses Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#responsesObject) -- [x] [Callback Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#callbackObject) -- [x] [Example Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#exampleObject) -- [x] [Link Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#linkObject) -- [x] [Header Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#headerObject) -- [x] [Tag Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#tagObject) -- [x] [Reference Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#referenceObject) -- [x] [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schemaObject) -- [x] [Discriminator Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#discriminatorObject) -- [x] [XML Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#xmlObject) -- [x] [Security Scheme Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#securitySchemeObject) -- [x] [OAuth Flows Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#oauthFlowsObject) -- [x] [OAuth Flow Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#oauthFlowObject) -- [x] [Security Requirement Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#securityRequirementObject) -- [x] [Specification extensions](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#specificationExtensions) +- [x] [OpenAPI Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#openapi-object) +- [x] [Info Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#info-object) +- [x] [Contact Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#contact-object) +- [x] [License Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#license-object) +- [x] [Server Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#server-object) +- [x] [Server Variable Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#server-variable-object) +- [x] [Components](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#components-object) +- [x] [Paths Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#paths-object) +- [x] [Path Item Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#path-item-object) +- [x] [Operation Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#operation-object) +- [x] [External Documentation Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#external-documentation-object) +- [x] [Parameter Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameter-object) +- [x] [Request Body Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#request-body-object) +- [x] [Media Type Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#media-type-object) +- [x] [Encoding Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#encoding-object) +- [x] [Responses Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#responses-object) +- [x] [Callback Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#callback-object) +- [x] [Example Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#example-object) +- [x] [Link Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#link-object) +- [x] [Header Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#header-object) +- [x] [Tag Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#tag-object) +- [x] [Reference Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#reference-object) +- [x] [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schema-object) +- [x] [Discriminator Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#discriminator-object) +- [x] [XML Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#xml-object) +- [x] [Security Scheme Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#security-scheme-object) +- [x] [OAuth Flows Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#oauth-flows-object) +- [x] [OAuth Flow Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#oauth-flow-object) +- [x] [Security Requirement Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#security-requirement-object) +- [x] [Specification extensions](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#specification-extensions) diff --git a/packages/apidom-parser-adapter-api-design-systems-json/README.md b/packages/apidom-parser-adapter-api-design-systems-json/README.md index fe7a51f3b..242d96664 100644 --- a/packages/apidom-parser-adapter-api-design-systems-json/README.md +++ b/packages/apidom-parser-adapter-api-design-systems-json/README.md @@ -6,7 +6,7 @@ Supported versions: - 2021-05-07 Under the hood this adapter uses [@swagger-api/apidom-parser-adapter-json](https://github.com/swagger-api/apidom/tree/main/packages/apidom-parser-adapter-json) -to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom#base-namespace) +to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core#base-namespace) which is then refracted with [API Design Systems Refractors](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-api-design-systems#refractors). ## Installation @@ -36,7 +36,7 @@ Defines list of media types that this parser adapter recognizes. ### detect -[Detection](https://github.com/swagger-api/apidom/blob/main/packages/apidom-parser-adapter-api-design-systems-json/src/adapter.ts#L11) is based on a regular expression matching required API Design Systems specification symbols in JSON format. +[Detection](https://github.com/swagger-api/apidom/blob/main/packages/apidom-parser-adapter-api-design-systems-json/src/adapter.ts#L17) is based on a regular expression matching required API Design Systems specification symbols in JSON format. ### namespace diff --git a/packages/apidom-parser-adapter-api-design-systems-yaml/README.md b/packages/apidom-parser-adapter-api-design-systems-yaml/README.md index c1c098dc3..b8574c132 100644 --- a/packages/apidom-parser-adapter-api-design-systems-yaml/README.md +++ b/packages/apidom-parser-adapter-api-design-systems-yaml/README.md @@ -6,7 +6,7 @@ Supported versions: - 2021-05-07 Under the hood this adapter uses [@swagger-api/apidom-parser-adapter-yaml-1-2](https://github.com/swagger-api/apidom/tree/main/packages/apidom-parser-adapter-yaml-1-2) -to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom#base-namespace) +to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core#base-namespace) which is then refracted with [API Design Systems Refractors](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-api-design-systems#refractors). ## Installation @@ -36,7 +36,7 @@ Defines list of media types that this parser adapter recognizes. ### detect -[Detection](https://github.com/swagger-api/apidom/blob/main/packages/apidom-parser-adapter-api-design-systems-yaml/src/adapter.ts#L11) is based on a regular expression matching required API Design Systems specification symbols in YAML format. +[Detection](https://github.com/swagger-api/apidom/blob/main/packages/apidom-parser-adapter-api-design-systems-yaml/src/adapter.ts#L21) is based on a regular expression matching required API Design Systems specification symbols in YAML format. ### namespace diff --git a/packages/apidom-parser-adapter-arazzo-json-1/README.md b/packages/apidom-parser-adapter-arazzo-json-1/README.md index 1ae038ad2..de1f851ca 100644 --- a/packages/apidom-parser-adapter-arazzo-json-1/README.md +++ b/packages/apidom-parser-adapter-arazzo-json-1/README.md @@ -2,7 +2,7 @@ `@swagger-api/apidom-parser-adapter-arazzo-json-1-0` is a parser adapter for the [Arazzo 1.0.1 specification](https://spec.openapis.org/arazzo/latest.html#version-1-0-1) in [JSON format](https://www.json.org/json-en.html). Under the hood this adapter uses [apidom-parser-adapter-json](https://github.com/swagger-api/apidom/tree/main/packages/apidom-parser-adapter-json) -to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom#base-namespace) +to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core#base-namespace) which is then refracted with [Arazzo 1.x.y Refractors](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-arazzo-1#refractors). ## Installation @@ -34,7 +34,7 @@ Defines list of media types that this parser adapter recognizes. ### detect -[Detection](https://github.com/swagger-api/apidom/blob/main/packages/apidom-parser-adapter-arazzo-json-1/src/adapter.ts#L13) is based on a regular expression matching required Arazzo 1.0.1 specification symbols in JSON format. +[Detection](https://github.com/swagger-api/apidom/blob/main/packages/apidom-parser-adapter-arazzo-json-1/src/adapter.ts#L18) is based on a regular expression matching required Arazzo 1.0.1 specification symbols in JSON format. ### namespace diff --git a/packages/apidom-parser/README.md b/packages/apidom-parser/README.md index 11084ab08..5694af91f 100644 --- a/packages/apidom-parser/README.md +++ b/packages/apidom-parser/README.md @@ -18,10 +18,10 @@ containing following 4 properties (2 required, 2 optional): Property | Type | Default | Description --- | --- | --- | --- -`detect` | `(source: String) => Boolean` | `undefined` | This method is called from a parser with a single argument of string that is going to be parsed. Returns a boolean value indicating if the source string was recognized by the parser adapter. It can be defined either as [synchronous](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Introducing#synchronous_javascript) or [asynchronous function](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Introducing#asynchronous_javascript). +`detect` | `(source: String) => Boolean` | `undefined` | This method is called from a parser with a single argument of string that is going to be parsed. Returns a boolean value indicating if the source string was recognized by the parser adapter. It can be defined either as [synchronous](https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Async_JS/Introducing#synchronous_programming) or [asynchronous function](https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Async_JS). `mediaTypes` | `String[]` | `undefined` | This is a property of parser adapter that contains list of supported [media types](https://www.iana.org/assignments/media-types/media-types.xhtml) by this parser adapter. Note that other media types that are not officially registered by [iana](https://www.iana.org/) can be used as well. `namespace` | `Namespace` | | **REQUIRED** An ApiDOM namespace instance. -`parse` | `(source: String, options = {}) => ParseResult` | | **REQUIRED** This method should contain logic of actual parsing and should return instance of [ParseResult Element](https://github.com/swagger-api/apidom/blob/main/packages/apidom/src/elements/ParseResult.ts). +`parse` | `(source: String, options = {}) => ParseResult` | | **REQUIRED** This method should contain logic of actual parsing and should return instance of [ParseResult Element](https://github.com/swagger-api/apidom/blob/main/packages/apidom-core/src/elements/ParseResult.ts). Now, let's mount some adapters: @@ -39,7 +39,7 @@ parser.use(yamlParserAdapter); ## Finding an appropriate ApiDOM namespace ApiDOM parser contains logic of mapping a `source string` + `mediaType` to appropriate ApiDOM namespace. -It will return either [base namespace instance](https://github.com/swagger-api/apidom/tree/main/packages/apidom#base-namespace) or a specific one like [OpenApi 3.1.0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-openapi-3-1#openapi-310-namespace) or [AsyncApi 2.6.0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-asyncapi-2#asyncapi-2xy-namespace). +It will return either [base namespace instance](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core#base-namespace) or a specific one like [OpenApi 3.1.0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-openapi-3-1#openapi-310-namespace) or [AsyncApi 2.6.0](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-asyncapi-2#asyncapi-2xy-namespace). ```js import ApiDOMParser from '@swagger-api/apidom-parser';