Repository: graphql-markdown/graphql-markdown
Pull request #955 (2023-08-19 14:43:44)

:recycle:  extract utils/logger to @graphql-markdown/logger
# Description

Extract the module `logger` to dedicated package:
- improve separation of concerns (logger is not a utility)
- easier to refactor logger without impacting `utils`

# Checklist

- [x] My changes follow the [contributing guidelines](https://github.com/graphql-markdown/graphql-markdown/blob/main/CONTRIBUTING.md) of this project.
- [x] I have performed a self-review of my code.
- [x] I have made corresponding changes to the documentation.
- [x] I have added tests that prove my fix is effective or that my changes work.
- [x] New and existing unit tests pass locally with my changes.


sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; [![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=955)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [1 Code Smell](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list)



![idea](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/light_bulb-16px.png 'idea') Catch issues before they fail your Quality Gate with our IDE extension ![sonarlint](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/sonarlint-16px.png 'sonarlint') [SonarLint](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=sonarcloud-welcome)
codesee-maps[bot]: <details open>
<summary><b>👇 <a href="https://app.codesee.io/r/reviews?pr=955&src=https%3A%2F%2Fgithub.com%2Fgraphql-markdown%2Fgraphql-markdown">Click on the image</a> for a new way to code review</b>
</summary>

####

[![Review these changes using an interactive CodeSee Map](https://s3.us-east-2.amazonaws.com/maps.codesee.io/images/github/graphql-markdown/graphql-markdown/955/e9da060e/2489d8198bb82831f59611d705cc861708da78e5.svg)](https://app.codesee.io/r/reviews?pr=955&src=https%3A%2F%2Fgithub.com%2Fgraphql-markdown%2Fgraphql-markdown)

#### Legend
<img src="https://app.codesee.io/Legend_v3.png" alt="CodeSee Map legend" width="220" height="156">
</details>
sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; [![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=955)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [1 Code Smell](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list)



![idea](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/light_bulb-16px.png 'idea') Catch issues before they fail your Quality Gate with our IDE extension ![sonarlint](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/sonarlint-16px.png 'sonarlint') [SonarLint](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=sonarcloud-welcome)
coveralls: 
[![Coverage Status](https://coveralls.io/builds/62092775/badge)](https://coveralls.io/builds/62092775)

coverage: 93.798% (+0.007%) from 93.791% when pulling **2489d8198bb82831f59611d705cc861708da78e5 on chore/split-utils-package** into **466abea6a240d85e6e8c919cd7a349e17576da86 on main**.

sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; [![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=955)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [1 Code Smell](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list)



![idea](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/light_bulb-16px.png 'idea') Catch issues before they fail your Quality Gate with our IDE extension ![sonarlint](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/sonarlint-16px.png 'sonarlint') [SonarLint](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=sonarcloud-welcome)
sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=955)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=955&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=955&metric=new_duplicated_lines_density&view=list)



Patch:
diff --git a/.github/workflows/mutation.yml b/.github/workflows/mutation.yml
index c740fabb..d00207d2 100644
--- a/.github/workflows/mutation.yml
+++ b/.github/workflows/mutation.yml
@@ -27,7 +27,7 @@ jobs:
       fail-fast: false
       matrix:
         package:
-          ["core", "diff", "docusaurus", "printer-legacy", "utils", "helpers"]
+          ["core", "diff", "docusaurus", "printer-legacy", "utils", "helpers", "logger"]
 
     steps:
       - name: Checkout Code Base
diff --git a/Earthfile b/Earthfile
index 4415fd9b..b70eb465 100644
--- a/Earthfile
+++ b/Earthfile
@@ -58,7 +58,7 @@ smoke-init:
   FROM +build-docusaurus
   WORKDIR /docusaurus2
   RUN npm install graphql @graphql-tools/url-loader @graphql-tools/graphql-file-loader
-  FOR package IN types utils helpers printer-legacy diff core docusaurus
+  FOR package IN types utils helpers logger printer-legacy diff core docusaurus
     COPY (+build-package/graphql-markdown-${package}.tgz --package=${package}) ./
     RUN npm install ./graphql-markdown-${package}.tgz
   END
diff --git a/config/jest.config.js b/config/jest.config.js
index f52d24b5..0c87f8b0 100644
--- a/config/jest.config.js
+++ b/config/jest.config.js
@@ -26,11 +26,12 @@ module.exports = {
   coverageReporters: ["json", "lcov"],
   moduleFileExtensions: ["ts", "js"],
   projects: [
-    projectConfig("utils"),
     projectConfig("core"),
-    projectConfig("printer-legacy"),
     projectConfig("diff"),
-    projectConfig("helpers"),
     projectConfig("docusaurus"),
+    projectConfig("helpers"),
+    projectConfig("logger"),
+    projectConfig("printer-legacy"),
+    projectConfig("utils"),
   ],
 };
diff --git a/package-lock.json b/package-lock.json
index ee7bbb03..d7f96572 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1695,6 +1695,10 @@
       "resolved": "packages/helpers",
       "link": true
     },
+    "node_modules/@graphql-markdown/logger": {
+      "resolved": "packages/logger",
+      "link": true
+    },
     "node_modules/@graphql-markdown/printer-legacy": {
       "resolved": "packages/printer-legacy",
       "link": true
@@ -15227,6 +15231,7 @@
       "version": "1.6.4",
       "license": "MIT",
       "dependencies": {
+        "@graphql-markdown/logger": "^1.0.0",
         "@graphql-markdown/utils": "^1.5.1"
       },
       "devDependencies": {
@@ -15279,6 +15284,7 @@
       "license": "MIT",
       "dependencies": {
         "@graphql-markdown/core": "^1.6.4",
+        "@graphql-markdown/logger": "^1.0.0",
         "@graphql-markdown/printer-legacy": "^1.4.3"
       },
       "devDependencies": {
@@ -15306,6 +15312,16 @@
         "node": ">=16.14"
       }
     },
+    "packages/logger": {
+      "version": "1.0.0",
+      "license": "MIT",
+      "devDependencies": {
+        "@graphql-markdown/types": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=16.14"
+      }
+    },
     "packages/printer-legacy": {
       "name": "@graphql-markdown/printer-legacy",
       "version": "1.4.3",
diff --git a/package.json b/package.json
index 0eea5f7b..a403d1a8 100644
--- a/package.json
+++ b/package.json
@@ -199,6 +199,7 @@
     "@graphql-markdown/diff": "file:packages/diff",
     "@graphql-markdown/docusaurus": "file:packages/docusaurus",
     "@graphql-markdown/helpers": "file:packages/helpers",
+    "@graphql-markdown/logger": "file:packages/logger",
     "@graphql-markdown/printer-legacy": "file:packages/printer-legacy",
     "@graphql-markdown/types": "file:packages/types",
     "@graphql-markdown/utils": "file:packages/utils",
diff --git a/packages/core/package.json b/packages/core/package.json
index a2dc9ce5..0703c668 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -62,7 +62,8 @@
     "clean": "rm -rf ./dist"
   },
   "dependencies": {
-    "@graphql-markdown/utils": "^1.5.1"
+    "@graphql-markdown/utils": "^1.5.1",
+    "@graphql-markdown/logger": "^1.0.0"
   },
   "peerDependencies": {
     "@graphql-markdown/diff": "^1.0.14",
diff --git a/packages/core/src/diff.ts b/packages/core/src/diff.ts
index 1472151c..43e5dacc 100644
--- a/packages/core/src/diff.ts
+++ b/packages/core/src/diff.ts
@@ -5,7 +5,7 @@ import type {
   Maybe,
 } from "@graphql-markdown/types";
 
-import { Logger } from "@graphql-markdown/utils";
+import { Logger } from "@graphql-markdown/logger";
 
 const logger = Logger();
 
diff --git a/packages/core/src/generator.ts b/packages/core/src/generator.ts
index d193640f..fc45e870 100644
--- a/packages/core/src/generator.ts
+++ b/packages/core/src/generator.ts
@@ -4,13 +4,14 @@ import type {
   SchemaEntity,
 } from "@graphql-markdown/types";
 
+import { Logger } from "@graphql-markdown/logger";
+
 import {
   getCustomDirectives,
   getDocumentLoaders,
   getGroups,
   getSchemaMap,
   loadSchema,
-  Logger,
 } from "@graphql-markdown/utils";
 
 import { Renderer } from "./renderer";
diff --git a/packages/core/src/graphql-config.ts b/packages/core/src/graphql-config.ts
index ab18da6f..7e194ba3 100644
--- a/packages/core/src/graphql-config.ts
+++ b/packages/core/src/graphql-config.ts
@@ -8,7 +8,7 @@ import type {
   PackageOptionsConfig,
 } from "@graphql-markdown/types";
 
-import { Logger } from "@graphql-markdown/utils";
+import { Logger } from "@graphql-markdown/logger";
 
 const logger = Logger();
 
diff --git a/packages/core/src/renderer.ts b/packages/core/src/renderer.ts
index b229c062..c4a2167b 100644
--- a/packages/core/src/renderer.ts
+++ b/packages/core/src/renderer.ts
@@ -17,7 +17,6 @@ import {
   ensureDir,
   fileExists,
   isDeprecated,
-  Logger,
   pathUrl,
   prettifyJavascript,
   prettifyMarkdown,
@@ -27,6 +26,7 @@ import {
   slugify,
 } from "@graphql-markdown/utils";
 
+import { Logger } from "@graphql-markdown/logger";
 const logger = Logger();
 
 const SIDEBAR = "sidebar-schema.js" as const;
diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json
index a760d28f..4a15b948 100644
--- a/packages/core/tsconfig.json
+++ b/packages/core/tsconfig.json
@@ -12,7 +12,8 @@
   },
 
   "references": [
-    { "path": "../utils" },
+    { "path": "../utils" }, 
+    { "path": "../logger" },
     { "path": "../printer-legacy" } // needed for mutation tests only
   ]
 }
diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json
index e117ac9c..4d56b19c 100644
--- a/packages/docusaurus/package.json
+++ b/packages/docusaurus/package.json
@@ -51,6 +51,7 @@
   },
   "dependencies": {
     "@graphql-markdown/core": "^1.6.4",
+    "@graphql-markdown/logger": "^1.0.0",
     "@graphql-markdown/printer-legacy": "^1.4.3"
   },
   "devDependencies": {
diff --git a/packages/docusaurus/src/index.ts b/packages/docusaurus/src/index.ts
index f5b84e74..2b2e21fa 100644
--- a/packages/docusaurus/src/index.ts
+++ b/packages/docusaurus/src/index.ts
@@ -2,7 +2,7 @@
 import type { LoadContext, Plugin, PluginOptions } from "@docusaurus/types";
 import type { CliOptions, ConfigOptions } from "@graphql-markdown/types";
 import { generateDocFromSchema, buildConfig } from "@graphql-markdown/core";
-import { Logger } from "@graphql-markdown/utils";
+import { Logger } from "@graphql-markdown/logger";
 
 const NAME = "docusaurus-graphql-doc-generator" as const;
 const COMMAND = "graphql-to-doc" as const;
diff --git a/packages/docusaurus/tsconfig.json b/packages/docusaurus/tsconfig.json
index 3e3f5389..dcae50f1 100644
--- a/packages/docusaurus/tsconfig.json
+++ b/packages/docusaurus/tsconfig.json
@@ -11,5 +11,5 @@
     }
   },
 
-  "references": [{ "path": "../utils" }, { "path": "../core" }]
+  "references": [{ "path": "../utils" }, { "path": "../core" }, { "path": "../logger" }]
 }
diff --git a/packages/logger/LICENSE b/packages/logger/LICENSE
new file mode 100644
index 00000000..acd4380d
--- /dev/null
+++ b/packages/logger/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Grégory Heitz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/logger/README.md b/packages/logger/README.md
new file mode 100644
index 00000000..bce31027
--- /dev/null
+++ b/packages/logger/README.md
@@ -0,0 +1,5 @@
+# @graphql-markdown/logger
+
+[![Latest Version](https://img.shields.io/npm/v/@graphql-markdown/logger?style=flat-square)](https://www.npmjs.com/package/@graphql-markdown/logger)
+[![GitHub License](https://img.shields.io/github/license/graphql-markdown/graphql-markdown?style=flat-square)](https://raw.githubusercontent.com/graphql-markdown/graphql-markdown/main/LICENSE)
+
diff --git a/packages/utils/docs/logger.md b/packages/logger/docs/logger.md
similarity index 68%
rename from packages/utils/docs/logger.md
rename to packages/logger/docs/logger.md
index bd378704..0d19863a 100644
--- a/packages/utils/docs/logger.md
+++ b/packages/logger/docs/logger.md
@@ -1,10 +1,10 @@
-# Module: logger
+# @graphql-markdown/logger
 
 Logger singleton module.
 
 ## Functions
 
-### Logger()
+### Logger
 
 ```ts
 Logger(moduleName?): LoggerType
@@ -13,6 +13,18 @@ Logger(moduleName?): LoggerType
 Returns a logger module, if a package name is provided then instantiates it.
 By default, the logger module uses `global.console`
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `moduleName`? | `string` | optional name of the logger package. |
+
+#### Returns
+
+`LoggerType`
+
+an instance of the logger.
+
 #### Example
 
 ```js
@@ -24,18 +36,6 @@ const loggerModule = require.resolve("@docusaurus/logger");
 Logger(loggerModule).info("Info message"); // Expected Docusaurus log output "Info message"
 ```
 
-#### Parameters
-
-| Parameter     | Type     | Description                          |
-| :------------ | :------- | :----------------------------------- |
-| `moduleName`? | `string` | optional name of the logger package. |
-
-#### Returns
-
-`LoggerType`
-
-an instance of the logger.
-
-#### Source
+#### Defined In
 
-[packages/utils/src/logger.ts:36](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/logger.ts#L36)
+[index.ts:36](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/logger/src/index.ts#L36)
diff --git a/packages/logger/package.json b/packages/logger/package.json
new file mode 100644
index 00000000..f0893aba
--- /dev/null
+++ b/packages/logger/package.json
@@ -0,0 +1,63 @@
+{
+  "name": "@graphql-markdown/logger",
+  "homepage": "https://graphql-markdown.github.io",
+  "description": "GraphQL-Markdown logger.",
+  "bugs": {
+    "url": "https://github.com/graphql-markdown/graphql-markdown/issues"
+  },
+  "version": "1.0.0",
+  "license": "MIT",
+  "repository": {
+    "type": "git",
+    "url": "graphql-markdown/graphql-markdown",
+    "directory": "packages/logger"
+  },
+  "author": {
+    "name": "Gregory Heitz"
+  },
+  "main": "dist/index.js",
+  "types": "dist/index.d.ts",
+  "exports": {
+    ".": {
+      "require": {
+        "types": "./dist/index.d.ts",
+        "default": "./dist/index.js"
+      },
+      "import": {
+        "types": "./dist/index.d.ts",
+        "default": "./dist/index.js"
+      },
+      "default": {
+        "types": "./dist/index.d.ts",
+        "default": "./dist/index.js"
+      }
+    },
+    "./package.json": "./package.json"
+  },
+  "scripts": {
+    "prepack": "pinst --disable",
+    "postpack": "pinst --enable",
+    "stryker": "stryker run",
+    "clean": "rm -rf ./dist",
+    "docs": "typedoc"
+  },
+  "devDependencies": {
+    "@graphql-markdown/types": "^1.0.0"
+  },
+  "directories": {
+    "test": "tests"
+  },
+  "engines": {
+    "node": ">=16.14"
+  },
+  "publishConfig": {
+    "directory": "dist",
+    "access": "public"
+  },
+  "typescript": {
+    "definition": "dist/index.d.ts"
+  },
+  "files": [
+    "dist"
+  ]
+}
diff --git a/packages/utils/src/logger.ts b/packages/logger/src/index.ts
similarity index 100%
rename from packages/utils/src/logger.ts
rename to packages/logger/src/index.ts
diff --git a/packages/logger/stryker.conf.js b/packages/logger/stryker.conf.js
new file mode 100644
index 00000000..3ceff6e5
--- /dev/null
+++ b/packages/logger/stryker.conf.js
@@ -0,0 +1,6 @@
+// @ts-check
+/**
+ * @type {import('@stryker-mutator/api/core').PartialStrykerOptions}
+ */
+
+module.exports = require("../../config/stryker.conf");
diff --git a/packages/logger/tsconfig.json b/packages/logger/tsconfig.json
new file mode 100644
index 00000000..b33c57d8
--- /dev/null
+++ b/packages/logger/tsconfig.json
@@ -0,0 +1,13 @@
+{
+  "extends": "../../tsconfig.base.json",
+
+  "compilerOptions": {
+    "rootDir": "src",
+    "outDir": "dist",
+
+    "paths": {
+      "@graphql-markdown/types": ["../types/src/index.d.ts"],
+      "@graphql-markdown/*": ["../*/src/index.ts"]
+    }
+  }
+}
diff --git a/packages/logger/typedoc.json b/packages/logger/typedoc.json
new file mode 100644
index 00000000..12992936
--- /dev/null
+++ b/packages/logger/typedoc.json
@@ -0,0 +1,10 @@
+{
+  "extends": ["../../typedoc.base.json"],
+  "entryPoints": ["./src"],
+  "entryPointStrategy": "expand",
+  "out": "./docs",
+  "skipIndexPage": false,
+  "entryFileName": "logger.md",
+  "indexPageTitle": "@graphql-markdown/logger",
+  "exclude": []
+}
diff --git a/packages/types/src/utils.d.ts b/packages/types/src/utils.d.ts
index 4bc1113e..cbe64c3e 100644
--- a/packages/types/src/utils.d.ts
+++ b/packages/types/src/utils.d.ts
@@ -13,6 +13,7 @@ import type {
   GraphQLInterfaceType,
   GraphQLObjectType,
   GraphQLUnionType,
+  ObjectTypeDefinitionNode,
 } from "graphql";
 
 import type { BaseLoaderOptions } from "@graphql-tools/utils";
@@ -134,4 +135,20 @@ export type RelationOfField =
 export type RelationOfInterface = GraphQLInterfaceType | GraphQLObjectType;
 export type RelationOfImplementation = GraphQLUnionType | RelationOfInterface;
 
+export type PrettifyCallbackFunction = (
+  text: string,
+  options?: unknown,
+) => Promise<Maybe<string>>;
+
+export type DeprecatedType<T> = Partial<{
+  deprecationReason: string;
+  isDeprecated: boolean;
+}> &
+  T;
+
+export type AstNodeType<T> = Required<{
+  astNode: ObjectTypeDefinitionNode;
+}> &
+  T;
+
 export type { LoadSchemaOptions } from "@graphql-tools/load";
diff --git a/packages/utils/README.md b/packages/utils/README.md
index a8a700ea..4c146a7d 100644
--- a/packages/utils/README.md
+++ b/packages/utils/README.md
@@ -14,7 +14,6 @@
 - [graphql/introspection](docs/graphql_introspection.md)
 - [graphql/loader](docs/graphql_loader.md)
 - [graphql/relation](docs/graphql_relation.md)
-- [logger](docs/logger.md)
 - [object](docs/object.md)
 - [prettier](docs/prettier.md)
 - [string](docs/string.md)
diff --git a/packages/utils/docs/array.md b/packages/utils/docs/array.md
index 19f9bfa7..1d7f9f3e 100644
--- a/packages/utils/docs/array.md
+++ b/packages/utils/docs/array.md
@@ -1,10 +1,10 @@
 # Module: array
 
-Internal library of helpers for converting array \\<-\\> list.
+Internal library of helpers for converting array \`<-\>`  list.
 
 ## Functions
 
-### convertArrayToMapObject()
+### convertArrayToMapObject
 
 ```ts
 convertArrayToMapObject<T>(list): Maybe< Record< string, T > >
@@ -12,17 +12,35 @@ convertArrayToMapObject<T>(list): Maybe< Record< string, T > >
 
 Returns a k/v object from an array of objects with a `name` property.
 
+#### Type parameters
+
+| Parameter | Description |
+| :------ | :------ |
+| `T` | the type of objects the list contains. |
+
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `list` | `Maybe`\< `T`[] \> | the list of objects of type `{ name: any }` to be converted. |
+
+#### Returns
+
+`Maybe`\< `Record`\< `string`, `T` \> \>
+
+an array of object values with `name` as key, or `undefined` if `list` is not a valid array.
+
 #### Example
 
 ```js
-import { convertArrayToMapObject } from "@graphql-markdown/utils/array";
+import { convertArrayToMapObject } from '@graphql-markdown/utils/array';
 
 convertArrayToMapObject([
-  { name: true },
-  { name: "test" },
-  { name: 123 },
-  { name2: 1234 },
-]);
+    { name: true },
+    { name: "test" },
+    { name: 123 },
+    { name2: 1234 },
+  ]);
 
 // Expected result: {
 //   true: { name: true },
@@ -31,31 +49,13 @@ convertArrayToMapObject([
 // }
 ```
 
-#### Type parameters
-
-| Parameter | Description                            |
-| :-------- | :------------------------------------- |
-| `T`       | the type of objects the list contains. |
-
-#### Parameters
-
-| Parameter | Type               | Description                                                  |
-| :-------- | :----------------- | :----------------------------------------------------------- |
-| `list`    | `Maybe`\< `T`[] \> | the list of objects of type `{ name: any }` to be converted. |
-
-#### Returns
-
-`Maybe`\< `Record`\< `string`, `T` \> \>
-
-an array of object values with `name` as key, or `undefined` if `list` is not a valid array.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/array.ts:74](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/array.ts#L74)
 
----
+***
 
-### toArray()
+### toArray
 
 ```ts
 toArray(recordMap): Maybe< unknown[] >
@@ -63,26 +63,10 @@ toArray(recordMap): Maybe< unknown[] >
 
 Returns an array of values from a k/v object.
 
-#### Example
-
-```js
-import { toArray } from "@graphql-markdown/utils/array";
-
-toArray({
-  bool: true,
-  string: "test",
-  number: 123,
-  array: ["one", "two"],
-  child: { key: "value" },
-});
-
-// Expected result: [true, "test", 123, ["one", "two"], { key: "value" }]
-```
-
 #### Parameters
 
-| Parameter   | Type                                           | Description                                  |
-| :---------- | :--------------------------------------------- | :------------------------------------------- |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
 | `recordMap` | `Maybe`\< `Record`\< `string`, `unknown` \> \> | the key/value record object to be converted. |
 
 #### Returns
@@ -91,6 +75,22 @@ toArray({
 
 an array of object values, or `undefined` if `recordMap` is not a valid object.
 
-#### Source
+#### Example
+
+```js
+import { toArray } from '@graphql-markdown/utils/array';
+
+toArray({
+    bool: true,
+    string: "test",
+    number: 123,
+    array: ["one", "two"],
+    child: { key: "value" },
+  });
+
+// Expected result: [true, "test", 123, ["one", "two"], { key: "value" }]
+```
+
+#### Defined In
 
 [packages/utils/src/array.ts:34](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/array.ts#L34)
diff --git a/packages/utils/docs/fs.md b/packages/utils/docs/fs.md
index 5865b43d..8775dc57 100644
--- a/packages/utils/docs/fs.md
+++ b/packages/utils/docs/fs.md
@@ -4,7 +4,7 @@ Library of helper functions for handling files and folders.
 
 ## Functions
 
-### ensureDir()
+### ensureDir
 
 ```ts
 ensureDir(location): Promise< void >
@@ -12,54 +12,44 @@ ensureDir(location): Promise< void >
 
 Asynchronously create a folder structure if it does not exist.
 
-#### Example
-
-```js
-import { ensureDir } from "@graphql-markdown/utils/fs";
-
-await ensureDir("./.temp/local");
-
-// Creates both folders if they do not exists.
-```
-
 #### Parameters
 
-| Parameter  | Type     | Description                      |
-| :--------- | :------- | :------------------------------- |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
 | `location` | `string` | folder structure in path format. |
 
 #### Returns
 
 `Promise`\< `void` \>
 
-#### Source
-
-[packages/utils/src/fs.ts:30](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/fs.ts#L30)
+#### Example
 
----
+```js
+import { ensureDir } from '@graphql-markdown/utils/fs';
 
-### fileExists()
+await ensureDir("./.temp/local")
 
-```ts
-fileExists(location): Promise< boolean >
+// Creates both folders if they do not exists.
 ```
 
-Asynchronously check if a file or folder exists at the path location.
+#### Defined In
 
-#### Example
+[packages/utils/src/fs.ts:30](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/fs.ts#L30)
 
-```js
-import { fileExists } from "@graphql-markdown/utils/fs";
+***
 
-await fileExists("./.temp/local");
+### fileExists
 
-// Expected true if path is valid, false if not
+```ts
+fileExists(location): Promise< boolean >
 ```
 
+Asynchronously check if a file or folder exists at the path location.
+
 #### Parameters
 
-| Parameter  | Type     | Description              |
-| :--------- | :------- | :----------------------- |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
 | `location` | `string` | file or folder location. |
 
 #### Returns
@@ -68,13 +58,23 @@ await fileExists("./.temp/local");
 
 `true` if the path is valid, else `false` if not.
 
-#### Source
+#### Example
+
+```js
+import { fileExists } from '@graphql-markdown/utils/fs';
+
+await fileExists("./.temp/local")
+
+// Expected true if path is valid, false if not
+```
+
+#### Defined In
 
 [packages/utils/src/fs.ts:54](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/fs.ts#L54)
 
----
+***
 
-### saveFile()
+### saveFile
 
 ```ts
 saveFile(
@@ -87,23 +87,13 @@ Asynchronously save a file with a string content at specified location in local
 Override the file content if the file already exists.
 The function calls `ensureDir(dirname(location))` to create the folder structure if missing.
 
-#### Example
-
-```js
-import { saveFile } from "@graphql-markdown/utils/fs";
-
-await saveFile("./.temp/local.md", "foobar");
-
-// Created .temp folder if it does not exists, and save data into local.md
-```
-
 #### Parameters
 
-| Parameter   | Type                                                         | Description                                             |
-| :---------- | :----------------------------------------------------------- | :------------------------------------------------------ |
-| `location`  | `string`                                                     | file location.                                          |
-| `content`   | `string`                                                     | data to be written into the file (UTF-8 string).        |
-| `prettify`? | (`text`, `options`?) => `Promise`\< `Maybe`\< `string` \> \> | optional callback function for prettifying the content. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `location` | `string` | file location. |
+| `content` | `string` | data to be written into the file (UTF-8 string). |
+| `prettify`? | `PrettifyCallbackFunction` | optional callback function for prettifying the content. |
 
 #### Returns
 
@@ -111,6 +101,16 @@ await saveFile("./.temp/local.md", "foobar");
 
 `true` if the path is valid, else `false` if not.
 
-#### Source
+#### Example
+
+```js
+import { saveFile } from '@graphql-markdown/utils/fs';
+
+await saveFile("./.temp/local.md", "foobar")
+
+// Created .temp folder if it does not exists, and save data into local.md
+```
+
+#### Defined In
 
 [packages/utils/src/fs.ts:85](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/fs.ts#L85)
diff --git a/packages/utils/docs/graphql_directive.md b/packages/utils/docs/graphql_directive.md
index fca10544..cc810245 100644
--- a/packages/utils/docs/graphql_directive.md
+++ b/packages/utils/docs/graphql_directive.md
@@ -8,23 +8,23 @@ Library supporting `customDirective` for directive based customization.
 
 ## Variables
 
-### WILDCARD_DIRECTIVE
+### WILDCARD\_DIRECTIVE
 
 ```ts
-const WILDCARD_DIRECTIVE: "";
+const WILDCARD_DIRECTIVE: ""
 ```
 
 Wildcard `*` character for matching any directive name.
 
 See [getCustomDirectiveOptions](graphql_directive.md#getcustomdirectiveoptions), [isCustomDirective](graphql_directive.md#iscustomdirective)
 
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/directive.ts:27](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/directive.ts#L27)
 
 ## Functions
 
-### getConstDirectiveMap()
+### getConstDirectiveMap
 
 ```ts
 getConstDirectiveMap(entity, customDirectiveMap): Maybe< CustomDirectiveMap >
@@ -32,6 +32,19 @@ getConstDirectiveMap(entity, customDirectiveMap): Maybe< CustomDirectiveMap >
 
 Returns a map of custom directives for a schema entity.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `entity` | `unknown` | a GraphQL schema entity. |
+| `customDirectiveMap` | `Maybe`\< `CustomDirectiveMap` \> | a custom directive map (see [getCustomDirectives](graphql_directive.md#getcustomdirectives)). |
+
+#### Returns
+
+`Maybe`\< `CustomDirectiveMap` \>
+
+a map of GraphQL directives matching the custom directives defined, else `undefined`.
+
 #### Example
 
 ```js
@@ -81,26 +94,13 @@ const map = getConstDirectiveMap(schema.getType("Test"), customDirectives);
 
 ```
 
-#### Parameters
-
-| Parameter            | Type                              | Description                                                                                   |
-| :------------------- | :-------------------------------- | :-------------------------------------------------------------------------------------------- |
-| `entity`             | `unknown`                         | a GraphQL schema entity.                                                                      |
-| `customDirectiveMap` | `Maybe`\< `CustomDirectiveMap` \> | a custom directive map (see [getCustomDirectives](graphql_directive.md#getcustomdirectives)). |
-
-#### Returns
-
-`Maybe`\< `CustomDirectiveMap` \>
-
-a map of GraphQL directives matching the custom directives defined, else `undefined`.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/directive.ts:246](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/directive.ts#L246)
 
----
+***
 
-### getCustomDirectiveOptions()
+### getCustomDirectiveOptions
 
 ```ts
 getCustomDirectiveOptions(schemaDirectiveName, customDirectiveOptions): Maybe< CustomDirectiveOptions >
@@ -108,6 +108,19 @@ getCustomDirectiveOptions(schemaDirectiveName, customDirectiveOptions): Maybe< C
 
 Returns a record set of custom handlers from a directive by name.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `schemaDirectiveName` | `DirectiveName` | the GraphQL directive name. |
+| `customDirectiveOptions` | `CustomDirective` | the `customDirective` option. |
+
+#### Returns
+
+`Maybe`\< `CustomDirectiveOptions` \>
+
+a record set of custom handlers for the matching directive (or if `*` is declared), or undefined if no match.
+
 #### Example
 
 ```js
@@ -127,26 +140,13 @@ const customDirectives = getCustomDirectiveOptions("testB", customDirectiveOptio
 // }
 ```
 
-#### Parameters
-
-| Parameter                | Type              | Description                   |
-| :----------------------- | :---------------- | :---------------------------- |
-| `schemaDirectiveName`    | `DirectiveName`   | the GraphQL directive name.   |
-| `customDirectiveOptions` | `CustomDirective` | the `customDirective` option. |
-
-#### Returns
-
-`Maybe`\< `CustomDirectiveOptions` \>
-
-a record set of custom handlers for the matching directive (or if `*` is declared), or undefined if no match.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/directive.ts:156](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/directive.ts#L156)
 
----
+***
 
-### getCustomDirectives()
+### getCustomDirectives
 
 ```ts
 getCustomDirectives(schemaMap, customDirectiveOptions?): Maybe< CustomDirectiveMap >
@@ -154,6 +154,19 @@ getCustomDirectives(schemaMap, customDirectiveOptions?): Maybe< CustomDirectiveM
 
 Returns a custom directives map with custom handlers from `customDirective`.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `schemaMap` | `Pick`\< `SchemaMap`, `"directives"` \> | the GraphQL schema map returned by [getSchemaMap](graphql_introspection.md#getschemamap) |
+| `customDirectiveOptions`? | `CustomDirective` | the `customDirective` option. |
+
+#### Returns
+
+`Maybe`\< `CustomDirectiveMap` \>
+
+a custom directive map, or undefined if no match.
+
 #### Example
 
 ```js
@@ -205,26 +218,13 @@ const customDirectives = getCustomDirectives(schemaMap, customDirectiveOptions);
 // }
 ```
 
-#### Parameters
-
-| Parameter                 | Type                                    | Description                                     |
-| :------------------------ | :-------------------------------------- | :---------------------------------------------- |
-| `schemaMap`               | `Pick`\< `SchemaMap`, `"directives"` \> | the GraphQL schema map returned by getSchemaMap |
-| `customDirectiveOptions`? | `CustomDirective`                       | the `customDirective` option.                   |
-
-#### Returns
-
-`Maybe`\< `CustomDirectiveMap` \>
-
-a custom directive map, or undefined if no match.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/directive.ts:88](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/directive.ts#L88)
 
----
+***
 
-### isCustomDirective()
+### isCustomDirective
 
 ```ts
 isCustomDirective(schemaDirectiveName, customDirectiveOptions): boolean
@@ -234,9 +234,9 @@ Checks if a directive name is referenced in `customDirective` option.
 
 #### Parameters
 
-| Parameter                | Type              | Description                   |
-| :----------------------- | :---------------- | :---------------------------- |
-| `schemaDirectiveName`    | `DirectiveName`   | the GraphQL directive name.   |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `schemaDirectiveName` | `DirectiveName` | the GraphQL directive name. |
 | `customDirectiveOptions` | `CustomDirective` | the `customDirective` option. |
 
 #### Returns
@@ -245,6 +245,6 @@ Checks if a directive name is referenced in `customDirective` option.
 
 `true` if the directive is declared or `*` is declared in `customDirective` option, else `false`.
 
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/directive.ts:180](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/directive.ts#L180)
diff --git a/packages/utils/docs/graphql_formatter.md b/packages/utils/docs/graphql_formatter.md
index adaab27b..ff3d1768 100644
--- a/packages/utils/docs/graphql_formatter.md
+++ b/packages/utils/docs/graphql_formatter.md
@@ -4,10 +4,10 @@ Internal library of helpers for formatting GraphQL values.
 
 ## Functions
 
-### getFormattedDefaultValue()
+### getFormattedDefaultValue
 
 ```ts
-getFormattedDefaultValue<T>(__namedParameters): Maybe< T | string >
+getFormattedDefaultValue<T>(entity): Maybe< T | string >
 ```
 
 Returns a printable formatted value for a GraphQL type.
@@ -16,16 +16,16 @@ This is the generic function.
 #### Type parameters
 
 | Parameter |
-| :-------- |
-| `T`       |
+| :------ |
+| `T` |
 
 #### Parameters
 
-| Parameter                        | Type                       |
-| :------------------------------- | :------------------------- |
-| `__namedParameters`              | `object`                   |
-| `__namedParameters.defaultValue` | `T`                        |
-| `__namedParameters.type`         | `Maybe`\< `GraphQLType` \> |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `entity` | `object` | the GraphQL schema entity processed. |
+| `entity.defaultValue` | `T` | the GraphQL schema type's value to be formatted. |
+| `entity.type` | `Maybe`\< `GraphQLType` \> | the GraphQL schema type. |
 
 #### Returns
 
@@ -33,6 +33,6 @@ This is the generic function.
 
 a printable formatted value.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/formatter.ts:31](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/formatter.ts#L31)
+[packages/utils/src/graphql/formatter.ts:32](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/formatter.ts#L32)
diff --git a/packages/utils/docs/graphql_group.md b/packages/utils/docs/graphql_group.md
index dfdd9b11..ecd7ec50 100644
--- a/packages/utils/docs/graphql_group.md
+++ b/packages/utils/docs/graphql_group.md
@@ -8,7 +8,7 @@ Library supporting `groupByDirective` for grouping GraphQL schema entities.
 
 ## Functions
 
-### getGroupName()
+### getGroupName
 
 ```ts
 getGroupName(type, groupByDirective): Maybe< string >
@@ -16,6 +16,19 @@ getGroupName(type, groupByDirective): Maybe< string >
 
 Gets the group name for a schema type based on the directive information.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | a GraphQL schema named type |
+| `groupByDirective` | `Maybe`\< `GroupByDirectiveOptions` \> | the `groupByDirective` option. |
+
+#### Returns
+
+`Maybe`\< `string` \>
+
+the group name matching the type, or `groupByDirective.fallback` if no match found.
+
 #### Example
 
 ```js
@@ -47,33 +60,21 @@ const groupOptions = {
   fallback: "common",
   directive: "doc",
   field: "category",
-};
+}
 
 getGroupName(schema.getType("Bird"), groupOptions); // Expected result: "animal"
 
 getGroupName(schema.getType("Unicorn"), groupOptions); // Expected result: "common"
-```
-
-#### Parameters
-
-| Parameter          | Type                                   | Description                    |
-| :----------------- | :------------------------------------- | :----------------------------- |
-| `type`             | `unknown`                              | a GraphQL schema named type    |
-| `groupByDirective` | `Maybe`\< `GroupByDirectiveOptions` \> | the `groupByDirective` option. |
 
-#### Returns
-
-`Maybe`\< `string` \>
-
-the group name matching the type, or `groupByDirective.fallback` if no match found.
+```
 
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/group.ts:158](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/group.ts#L158)
 
----
+***
 
-### getGroups()
+### getGroups
 
 ```ts
 getGroups(schemaMap, groupByDirective): Maybe< SchemaEntitiesGroupMap >
@@ -81,6 +82,19 @@ getGroups(schemaMap, groupByDirective): Maybe< SchemaEntitiesGroupMap >
 
 Parses a GraphQL schema to build a map of entities with matching `groupByDirective` option.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `schemaMap` | `SchemaMap` | the GraphQL schema map returned by [getSchemaMap](graphql_introspection.md#getschemamap) |
+| `groupByDirective` | `Maybe`\< `GroupByDirectiveOptions` \> | the `groupByDirective` option. |
+
+#### Returns
+
+`Maybe`\< `SchemaEntitiesGroupMap` \>
+
+a map of entities with matching group name.
+
 #### Example
 
 ```js
@@ -117,7 +131,7 @@ const groupOptions = {
   fallback: "common",
   directive: "doc",
   field: "category",
-};
+}
 
 const groupsMap = getGroups(schemaMap, groupOptions);
 
@@ -137,19 +151,6 @@ const groupsMap = getGroups(schemaMap, groupOptions);
 // }
 ```
 
-#### Parameters
-
-| Parameter          | Type                                   | Description                                     |
-| :----------------- | :------------------------------------- | :---------------------------------------------- |
-| `schemaMap`        | `SchemaMap`                            | the GraphQL schema map returned by getSchemaMap |
-| `groupByDirective` | `Maybe`\< `GroupByDirectiveOptions` \> | the `groupByDirective` option.                  |
-
-#### Returns
-
-`Maybe`\< `SchemaEntitiesGroupMap` \>
-
-a map of entities with matching group name.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/group.ts:84](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/group.ts#L84)
diff --git a/packages/utils/docs/graphql_guard.md b/packages/utils/docs/graphql_guard.md
index c6227fd5..f1ecbe72 100644
--- a/packages/utils/docs/graphql_guard.md
+++ b/packages/utils/docs/graphql_guard.md
@@ -4,7 +4,7 @@ Custom GraphQL type guards and property guards.
 
 ## Functions
 
-### instanceOf()
+### instanceOf
 
 ```ts
 instanceOf<T>(obj, type): obj is T
@@ -14,58 +14,58 @@ Checks if a GraphQL named type is of generic type `T`.
 
 #### Type parameters
 
-| Parameter | Description                                              |
-| :-------- | :------------------------------------------------------- |
-| `T`       | a GraphQL type to check against, eg `GraphQLObjectType`. |
+| Parameter | Description |
+| :------ | :------ |
+| `T` | a GraphQL type to check against, eg `GraphQLObjectType`. |
 
 #### Parameters
 
-| Parameter | Type      | Description                                   |
-| :-------- | :-------- | :-------------------------------------------- |
-| `obj`     | `unknown` | a GraphQL named type from the GraphQL schema. |
-| `type`    | () => `T` | the GraphQL type `T`.                         |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `obj` | `unknown` | a GraphQL named type from the GraphQL schema. |
+| `type` | () => `T` | the GraphQL type `T`. |
 
 #### Returns
 
 `obj is T`
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/guard.ts:49](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L49)
+[packages/utils/src/graphql/guard.ts:52](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L52)
 
----
+***
 
-### isDeprecated()
+### isDeprecated
 
 ```ts
-isDeprecated<T>(obj): obj is Partial<Object> & T
+isDeprecated<T>(obj): obj is DeprecatedType<T>
 ```
 
 Checks if a GraphQL named type is deprecated.
 
 #### Type parameters
 
-| Parameter | Description                                              |
-| :-------- | :------------------------------------------------------- |
-| `T`       | a GraphQL type to check against, eg `GraphQLObjectType`. |
+| Parameter | Description |
+| :------ | :------ |
+| `T` | a GraphQL type to check against, eg `GraphQLObjectType`. |
 
 #### Parameters
 
-| Parameter | Type | Description         |
-| :-------- | :--- | :------------------ |
-| `obj`     | `T`  | an instance of `T`. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `obj` | `T` | an instance of `T`. |
 
 #### Returns
 
-`obj is Partial<Object> & T`
+`obj is DeprecatedType<T>`
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/guard.ts:67](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L67)
+[packages/utils/src/graphql/guard.ts:70](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L70)
 
----
+***
 
-### isGraphQLFieldType()
+### isGraphQLFieldType
 
 ```ts
 isGraphQLFieldType(type): type is GraphQLField<unknown, unknown, unknown>
@@ -75,21 +75,21 @@ Checks if a GraphQL named type is of type `GraphQLField`.
 
 #### Parameters
 
-| Parameter | Type      | Description     |
-| :-------- | :-------- | :-------------- |
-| `type`    | `unknown` | a GraphQL type. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | a GraphQL type. |
 
 #### Returns
 
 `type is GraphQLField<unknown, unknown, unknown>`
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/guard.ts:30](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L30)
+[packages/utils/src/graphql/guard.ts:33](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L33)
 
----
+***
 
-### isOperation()
+### isOperation
 
 ```ts
 isOperation(type): type is GraphQLOperationType
@@ -99,14 +99,14 @@ Checks if a GraphQL type a GraphQL operation (query, mutation, subscription).
 
 #### Parameters
 
-| Parameter | Type      | Description     |
-| :-------- | :-------- | :-------------- |
-| `type`    | `unknown` | a GraphQL type. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | a GraphQL type. |
 
 #### Returns
 
 `type is GraphQLOperationType`
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/guard.ts:84](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L84)
+[packages/utils/src/graphql/guard.ts:85](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/guard.ts#L85)
diff --git a/packages/utils/docs/graphql_introspection.md b/packages/utils/docs/graphql_introspection.md
index ebfcee3c..c0a3cf87 100644
--- a/packages/utils/docs/graphql_introspection.md
+++ b/packages/utils/docs/graphql_introspection.md
@@ -2,7 +2,7 @@
 
 ## Functions
 
-### \_\_getFields()
+### \_\_getFields
 
 ```ts
 __getFields<T, V>(
@@ -18,17 +18,17 @@ see [getOperation](graphql_introspection.md#getoperation), [getFields](graphql_i
 #### Type parameters
 
 | Parameter |
-| :-------- |
-| `T`       |
-| `V`       |
+| :------ |
+| `T` |
+| `V` |
 
 #### Parameters
 
-| Parameter    | Type                | Description                                         |
-| :----------- | :------------------ | :-------------------------------------------------- |
-| `type`       | `T`                 | the GraphQL schema type to parse.                   |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `T` | the GraphQL schema type to parse. |
 | `processor`? | (`fieldMap`) => `V` | optional callback function to parse the fields map. |
-| `fallback`?  | `V`                 | optional fallback value, `undefined` if not set.    |
+| `fallback`? | `V` | optional fallback value, `undefined` if not set. |
 
 #### Returns
 
@@ -36,13 +36,13 @@ see [getOperation](graphql_introspection.md#getoperation), [getFields](graphql_i
 
 a map of fields as k/v records, or `fallback` value if no fields available.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:235](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L235)
+[packages/utils/src/graphql/introspection.ts:233](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L233)
 
----
+***
 
-### getDirective()
+### getDirective
 
 ```ts
 getDirective(entity, directives): GraphQLDirective[]
@@ -52,9 +52,9 @@ Returns a schema entity's list of directives matching a defined set.
 
 #### Parameters
 
-| Parameter    | Type                                | Description                                    |
-| :----------- | :---------------------------------- | :--------------------------------------------- |
-| `entity`     | `unknown`                           | a GraphQL schema entity.                       |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `entity` | `unknown` | a GraphQL schema entity. |
 | `directives` | `Maybe`\< `string` \| `string`[] \> | a directive name or a list of directive names. |
 
 #### Returns
@@ -63,13 +63,13 @@ Returns a schema entity's list of directives matching a defined set.
 
 a list of GraphQL directives matching the set, else `false`.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:137](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L137)
+[packages/utils/src/graphql/introspection.ts:135](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L135)
 
----
+***
 
-### getFields()
+### getFields
 
 ```ts
 getFields(type): unknown[]
@@ -81,9 +81,9 @@ see [getSchemaMap](graphql_introspection.md#getschemamap)
 
 #### Parameters
 
-| Parameter | Type      | Description                       |
-| :-------- | :-------- | :-------------------------------- |
-| `type`    | `unknown` | the GraphQL schema type to parse. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | the GraphQL schema type to parse. |
 
 #### Returns
 
@@ -91,13 +91,13 @@ see [getSchemaMap](graphql_introspection.md#getschemamap)
 
 a list of fields of type object.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:296](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L296)
+[packages/utils/src/graphql/introspection.ts:298](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L298)
 
----
+***
 
-### getOperation()
+### getOperation
 
 ```ts
 getOperation(operationType?): Record< string, GraphQLOperationType >
@@ -109,8 +109,8 @@ see [getSchemaMap](graphql_introspection.md#getschemamap)
 
 #### Parameters
 
-| Parameter        | Type      | Description                  |
-| :--------------- | :-------- | :--------------------------- |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
 | `operationType`? | `unknown` | the operation type to parse. |
 
 #### Returns
@@ -119,13 +119,13 @@ see [getSchemaMap](graphql_introspection.md#getschemamap)
 
 a map of fields as k/v records.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:272](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L272)
+[packages/utils/src/graphql/introspection.ts:274](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L274)
 
----
+***
 
-### getSchemaMap()
+### getSchemaMap
 
 ```ts
 getSchemaMap(schema): SchemaMap
@@ -134,6 +134,18 @@ getSchemaMap(schema): SchemaMap
 Returns an introspection map of the GraphQL schema.
 This is the entry point for GraphQL-Markdown schema parsing features.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `schema` | `Maybe`\< `GraphQLSchema` \> | a GraphQL schema. |
+
+#### Returns
+
+`SchemaMap`
+
+a schema map by GraphQL entities (see SchemaEntity).
+
 #### Example
 
 ```js
@@ -194,25 +206,13 @@ const schemaTypeMap = getSchemaMap(schema);
 // }
 ```
 
-#### Parameters
+#### Defined In
 
-| Parameter | Type                         | Description       |
-| :-------- | :--------------------------- | :---------------- |
-| `schema`  | `Maybe`\< `GraphQLSchema` \> | a GraphQL schema. |
+[packages/utils/src/graphql/introspection.ts:403](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L403)
 
-#### Returns
+***
 
-`SchemaMap`
-
-a schema map by GraphQL entities (see SchemaEntity).
-
-#### Source
-
-[packages/utils/src/graphql/introspection.ts:401](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L401)
-
----
-
-### getTypeDirectiveArgValue()
+### getTypeDirectiveArgValue
 
 ```ts
 getTypeDirectiveArgValue(
@@ -226,11 +226,11 @@ It calls [getTypeDirectiveValues](graphql_introspection.md#gettypedirectivevalue
 
 #### Parameters
 
-| Parameter   | Type               | Description                                                         |
-| :---------- | :----------------- | :------------------------------------------------------------------ |
-| `directive` | `GraphQLDirective` | a GraphQL directive defined in the schema.                          |
-| `node`      | `unknown`          | -                                                                   |
-| `argName`   | `string`           | the name of the GraphQL directive argument to fetch the value from. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `directive` | `GraphQLDirective` | a GraphQL directive defined in the schema. |
+| `node` | `unknown` | - |
+| `argName` | `string` | the name of the GraphQL directive argument to fetch the value from. |
 
 #### Returns
 
@@ -238,13 +238,13 @@ It calls [getTypeDirectiveValues](graphql_introspection.md#gettypedirectivevalue
 
 a record k/v with `argName` as key and the argument's value.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:178](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L178)
+[packages/utils/src/graphql/introspection.ts:176](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L176)
 
----
+***
 
-### getTypeDirectiveValues()
+### getTypeDirectiveValues
 
 ```ts
 getTypeDirectiveValues(directive, type): Maybe< Record< string, unknown > >
@@ -254,10 +254,10 @@ Returns all directive's arguments' values linked to a GraphQL schema type.
 
 #### Parameters
 
-| Parameter   | Type               | Description                                |
-| :---------- | :----------------- | :----------------------------------------- |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
 | `directive` | `GraphQLDirective` | a GraphQL directive defined in the schema. |
-| `type`      | `unknown`          | the GraphQL schema type to parse.          |
+| `type` | `unknown` | the GraphQL schema type to parse. |
 
 #### Returns
 
@@ -265,13 +265,13 @@ Returns all directive's arguments' values linked to a GraphQL schema type.
 
 a record k/v with arguments' name as keys and arguments' value.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:201](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L201)
+[packages/utils/src/graphql/introspection.ts:199](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L199)
 
----
+***
 
-### getTypeFromSchema()
+### getTypeFromSchema
 
 ```ts
 getTypeFromSchema<T>(schema, type): Maybe< Record< string, T > >
@@ -280,22 +280,18 @@ getTypeFromSchema<T>(schema, type): Maybe< Record< string, T > >
 Returns a map of GraphQL named types from a schema for a defined GraphQL type.
 When parsing the entities, internal GraphQL entities (starting with `__`) are excluded.
 
-#### See
-
-[getSchemaMap](graphql_introspection.md#getschemamap)
-
 #### Type parameters
 
 | Parameter |
-| :-------- |
-| `T`       |
+| :------ |
+| `T` |
 
 #### Parameters
 
-| Parameter | Type                         | Description                             |
-| :-------- | :--------------------------- | :-------------------------------------- |
-| `schema`  | `Maybe`\< `GraphQLSchema` \> | a GraphQL schema.                       |
-| `type`    | `unknown`                    | a GraphQL type, eg `GraphQLObjectType`. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `schema` | `Maybe`\< `GraphQLSchema` \> | a GraphQL schema. |
+| `type` | `unknown` | a GraphQL type, eg `GraphQLObjectType`. |
 
 #### Returns
 
@@ -303,13 +299,17 @@ When parsing the entities, internal GraphQL entities (starting with `__`) are ex
 
 a map of GraphQL named types for the matching GraphQL type, or undefined if no match.
 
-#### Source
+#### See
+
+[getSchemaMap](graphql_introspection.md#getschemamap)
+
+#### Defined In
 
 [packages/utils/src/graphql/introspection.ts:50](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L50)
 
----
+***
 
-### getTypeName()
+### getTypeName
 
 ```ts
 getTypeName(type, defaultName = ""): string
@@ -319,10 +319,10 @@ Resolves the name of a GraphQL schema type.
 
 #### Parameters
 
-| Parameter     | Type      | Default value | Description                                           |
-| :------------ | :-------- | :------------ | :---------------------------------------------------- |
-| `type`        | `unknown` | `undefined`   | -                                                     |
-| `defaultName` | `string`  | `""`          | optional fallback value if the name resolution fails. |
+| Parameter | Type | Default value | Description |
+| :------ | :------ | :------ | :------ |
+| `type` | `unknown` | `undefined` | - |
+| `defaultName` | `string` | `""` | optional fallback value if the name resolution fails. |
 
 #### Returns
 
@@ -330,16 +330,16 @@ Resolves the name of a GraphQL schema type.
 
 the type's name, or `defaultName`.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:317](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L317)
+[packages/utils/src/graphql/introspection.ts:319](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L319)
 
----
+***
 
-### hasAstNode()
+### hasAstNode
 
 ```ts
-hasAstNode<T>(node): node is Required<Object> & T
+hasAstNode<T>(node): node is AstNodeType<T>
 ```
 
 Type guard for type with an AST node property.
@@ -347,28 +347,28 @@ Type guard for type with an AST node property.
 #### Type parameters
 
 | Parameter |
-| :-------- |
-| `T`       |
+| :------ |
+| `T` |
 
 #### Parameters
 
-| Parameter | Type | Description                  |
-| :-------- | :--- | :--------------------------- |
-| `node`    | `T`  | a GraphQL schema named type. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `node` | `T` | a GraphQL schema named type. |
 
 #### Returns
 
-`node is Required<Object> & T`
+`node is AstNodeType<T>`
 
 `true` if the entity has an AST node property, else `false`.
 
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/introspection.ts:92](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L92)
 
----
+***
 
-### hasDirective()
+### hasDirective
 
 ```ts
 hasDirective(entity, directives): boolean
@@ -378,9 +378,9 @@ Checks if a schema entity as a directive belonging to a defined set.
 
 #### Parameters
 
-| Parameter    | Type                                | Description                                    |
-| :----------- | :---------------------------------- | :--------------------------------------------- |
-| `entity`     | `unknown`                           | a GraphQL schema entity.                       |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `entity` | `unknown` | a GraphQL schema entity. |
 | `directives` | `Maybe`\< `string` \| `string`[] \> | a directive name or a list of directive names. |
 
 #### Returns
@@ -389,6 +389,6 @@ Checks if a schema entity as a directive belonging to a defined set.
 
 `true` if the entity has at least one directive matching, else `false`.
 
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/introspection.ts:107](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L107)
+[packages/utils/src/graphql/introspection.ts:105](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/introspection.ts#L105)
diff --git a/packages/utils/docs/graphql_loader.md b/packages/utils/docs/graphql_loader.md
index aead585a..0443e7ec 100644
--- a/packages/utils/docs/graphql_loader.md
+++ b/packages/utils/docs/graphql_loader.md
@@ -4,7 +4,7 @@ Library for GraphQL schema loading and `loaders` config processing.
 
 ## Functions
 
-### getDocumentLoaders()
+### getDocumentLoaders
 
 ```ts
 getDocumentLoaders(loadersList): Promise< Maybe< LoadSchemaOptions > >
@@ -13,17 +13,26 @@ getDocumentLoaders(loadersList): Promise< Maybe< LoadSchemaOptions > >
 Asynchronously returns a valid loaders list for [loadSchema](graphql_loader.md#loadschema) based on the plugin config.
 Import each loader package, and instantiate a loader object.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `loadersList` | `Maybe`\< `LoaderOption` \> | the list of loaders defined in the plugin config. |
+
+#### Returns
+
+`Promise`\< `Maybe`\< `LoadSchemaOptions` \> \>
+
+a list of loader objects.
+
 #### Throws
 
-Error if no loader loader, or an error occurred when importing a loader package.
+an `Error` if no loader has been loaded, or if an error occurred while importing loaders.
 
 #### Example
 
 ```js
-import {
-  getDocumentLoaders,
-  loadSchema,
-} from "@graphql-markdown/utils/graphql";
+import { getDocumentLoaders, loadSchema } from "@graphql-markdown/utils/graphql"
 
 const loaderList = {
   GraphQLFileLoader: "@graphql-tools/graphql-file-loader",
@@ -37,25 +46,13 @@ const schema = await loadSchema("schema.graphql", {
 });
 ```
 
-#### Parameters
-
-| Parameter     | Type                        | Description                                       |
-| :------------ | :-------------------------- | :------------------------------------------------ |
-| `loadersList` | `Maybe`\< `LoaderOption` \> | the list of loaders defined in the plugin config. |
-
-#### Returns
-
-`Promise`\< `Maybe`\< `LoadSchemaOptions` \> \>
-
-a list of loader objects.
-
-#### Source
+#### Defined In
 
-[packages/utils/src/graphql/loader.ts:102](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/loader.ts#L102)
+[packages/utils/src/graphql/loader.ts:106](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/loader.ts#L106)
 
----
+***
 
-### loadSchema()
+### loadSchema
 
 ```ts
 loadSchema(schemaLocation, options): Promise< GraphQLSchema >
@@ -65,10 +62,23 @@ Wrapper method for `@graphql-tools/load.loadSchema` to load asynchronously a Gra
 The wrapper will load the schema using the loader declared in `options`.
 If `rootTypes` is set in the options, then the schema root types will be overridden to generate custom GraphQL schema.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `schemaLocation` | `string` | the schema location pointer matching the loader. |
+| `options` | `BuildSchemaOptions` & `GraphQLParseOptions` & \{} & \{} & \{} & `Partial`\< `IExecutableSchemaDefinition`\< `any` \> \> & \{} & \{`rootTypes`: `Partial`\< `Record`\< `OperationTypeNode`, `string` \> \>;} | the schema `loaders`, and optional `rootTypes` override. |
+
+#### Returns
+
+`Promise`\< `GraphQLSchema` \>
+
+a GraphQL schema.
+
 #### Example
 
 ```js
-import { loadSchema } from "@graphql-markdown/utils/graphql";
+import { loadSchema } from "@graphql-markdown/utils/graphql"
 
 const schema = await loadSchema("schema.graphql", {
   loaders: [new GraphQLFileLoader()],
@@ -76,19 +86,6 @@ const schema = await loadSchema("schema.graphql", {
 });
 ```
 
-#### Parameters
-
-| Parameter        | Type                                                                                                                                                                                                         | Description                                              |
-| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------- |
-| `schemaLocation` | `string`                                                                                                                                                                                                     | the schema location pointer matching the loader.         |
-| `options`        | `BuildSchemaOptions` & `GraphQLParseOptions` & \{} & \{} & \{} & `Partial`\< `IExecutableSchemaDefinition`\< `any` \> \> & \{} & \{`rootTypes`: `Partial`\< `Record`\< `OperationTypeNode`, `string` \> \>;} | the schema `loaders`, and optional `rootTypes` override. |
-
-#### Returns
-
-`Promise`\< `GraphQLSchema` \>
-
-a GraphQL schema.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/graphql/loader.ts:41](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/graphql/loader.ts#L41)
diff --git a/packages/utils/docs/graphql_relation.md b/packages/utils/docs/graphql_relation.md
index 0325621b..d1e939b0 100644
--- a/packages/utils/docs/graphql_relation.md
+++ b/packages/utils/docs/graphql_relation.md
@@ -8,7 +8,7 @@ Library supporting `relatedTypeSection` for displaying relations between GraphQL
 
 ## Functions
 
-### getRelationOfField()
+### getRelationOfField
 
 ```ts
 getRelationOfField(type, schemaMap): Partial< Record< SchemaEntity, RelationOfField[] > >
@@ -16,16 +16,12 @@ getRelationOfField(type, schemaMap): Partial< Record< SchemaEntity, RelationOfFi
 
 Returns a map of fields and arguments where the GraphQL schema type matches the type.
 
-#### See
-
-mapRelationOf
-
 #### Parameters
 
-| Parameter   | Type                     | Description                              |
-| :---------- | :----------------------- | :--------------------------------------- |
-| `type`      | `unknown`                | the GraphQL schema type being processed. |
-| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see getSchemaMap). |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | the GraphQL schema type being processed. |
+| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see [getSchemaMap](graphql_introspection.md#getschemamap)). |
 
 #### Returns
 
@@ -33,13 +29,17 @@ mapRelationOf
 
 a record map of fields and arguments relations.
 
-#### Source
+#### See
+
+mapRelationOf
+
+#### Defined In
 
-[packages/types/src/utils.d.ts:106](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L106)
+[packages/types/src/utils.d.ts:107](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L107)
 
----
+***
 
-### getRelationOfImplementation()
+### getRelationOfImplementation
 
 ```ts
 getRelationOfImplementation(type, schemaMap): Partial< Record< SchemaEntity, RelationOfImplementation[] > >
@@ -47,16 +47,12 @@ getRelationOfImplementation(type, schemaMap): Partial< Record< SchemaEntity, Rel
 
 Returns a map of types (unions or interfaces) where the GraphQL schema type is implemented.
 
-#### See
-
-mapRelationOf
-
 #### Parameters
 
-| Parameter   | Type                     | Description                              |
-| :---------- | :----------------------- | :--------------------------------------- |
-| `type`      | `unknown`                | the GraphQL schema type being processed. |
-| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see getSchemaMap). |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | the GraphQL schema type being processed. |
+| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see [getSchemaMap](graphql_introspection.md#getschemamap)). |
 
 #### Returns
 
@@ -64,13 +60,17 @@ mapRelationOf
 
 a record map of unions or interfaces relations.
 
-#### Source
+#### See
+
+mapRelationOf
+
+#### Defined In
 
-[packages/types/src/utils.d.ts:106](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L106)
+[packages/types/src/utils.d.ts:107](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L107)
 
----
+***
 
-### getRelationOfInterface()
+### getRelationOfInterface
 
 ```ts
 getRelationOfInterface(type, schemaMap): Partial< Record< SchemaEntity, RelationOfInterface[] > >
@@ -78,16 +78,12 @@ getRelationOfInterface(type, schemaMap): Partial< Record< SchemaEntity, Relation
 
 Returns a map of interfaces where the GraphQL schema type is extended.
 
-#### See
-
-mapRelationOf
-
 #### Parameters
 
-| Parameter   | Type                     | Description                              |
-| :---------- | :----------------------- | :--------------------------------------- |
-| `type`      | `unknown`                | the GraphQL schema type being processed. |
-| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see getSchemaMap). |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | the GraphQL schema type being processed. |
+| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see [getSchemaMap](graphql_introspection.md#getschemamap)). |
 
 #### Returns
 
@@ -95,13 +91,17 @@ mapRelationOf
 
 a record map of interfaces relations.
 
-#### Source
+#### See
+
+mapRelationOf
 
-[packages/types/src/utils.d.ts:106](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L106)
+#### Defined In
 
----
+[packages/types/src/utils.d.ts:107](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L107)
 
-### getRelationOfReturn()
+***
+
+### getRelationOfReturn
 
 ```ts
 getRelationOfReturn(type, schemaMap): Partial< Record< SchemaEntity, GraphQLOperationType[] > >
@@ -109,16 +109,12 @@ getRelationOfReturn(type, schemaMap): Partial< Record< SchemaEntity, GraphQLOper
 
 Returns a map of operations (queries, mutations, subscriptions) where the GraphQL schema type is the return type.
 
-#### See
-
-mapRelationOf
-
 #### Parameters
 
-| Parameter   | Type                     | Description                              |
-| :---------- | :----------------------- | :--------------------------------------- |
-| `type`      | `unknown`                | the GraphQL schema type being processed. |
-| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see getSchemaMap). |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | the GraphQL schema type being processed. |
+| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see [getSchemaMap](graphql_introspection.md#getschemamap)). |
 
 #### Returns
 
@@ -126,13 +122,17 @@ mapRelationOf
 
 a record map of operations relations.
 
-#### Source
+#### See
+
+mapRelationOf
+
+#### Defined In
 
-[packages/types/src/utils.d.ts:106](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L106)
+[packages/types/src/utils.d.ts:107](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L107)
 
----
+***
 
-### getRelationOfUnion()
+### getRelationOfUnion
 
 ```ts
 getRelationOfUnion(type, schemaMap): Partial< Record< SchemaEntity, GraphQLUnionType[] > >
@@ -140,16 +140,12 @@ getRelationOfUnion(type, schemaMap): Partial< Record< SchemaEntity, GraphQLUnion
 
 Returns a map of unions where the GraphQL schema type is part of it.
 
-#### See
-
-mapRelationOf
-
 #### Parameters
 
-| Parameter   | Type                     | Description                              |
-| :---------- | :----------------------- | :--------------------------------------- |
-| `type`      | `unknown`                | the GraphQL schema type being processed. |
-| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see getSchemaMap). |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `type` | `unknown` | the GraphQL schema type being processed. |
+| `schemaMap` | `Maybe`\< `SchemaMap` \> | a GraphQL schema map (see [getSchemaMap](graphql_introspection.md#getschemamap)). |
 
 #### Returns
 
@@ -157,6 +153,10 @@ mapRelationOf
 
 a record map of unions relations.
 
-#### Source
+#### See
+
+mapRelationOf
+
+#### Defined In
 
-[packages/types/src/utils.d.ts:106](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L106)
+[packages/types/src/utils.d.ts:107](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/types/src/utils.d.ts#L107)
diff --git a/packages/utils/docs/object.md b/packages/utils/docs/object.md
index 0e2d2d04..22a4c0a6 100644
--- a/packages/utils/docs/object.md
+++ b/packages/utils/docs/object.md
@@ -4,7 +4,7 @@ Internal library of helpers for manipulating objects.
 
 ## Functions
 
-### isEmpty()
+### isEmpty
 
 ```ts
 isEmpty(obj): boolean
@@ -12,10 +12,22 @@ isEmpty(obj): boolean
 
 Check if an object contains key/value records.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `obj` | `unknown` | the key/value record object. |
+
+#### Returns
+
+`boolean`
+
+`false` if the object is a valid k/v set of records, else `true`.
+
 #### Example
 
 ```js
-import { isEmpty } from "@graphql-markdown/utils/object";
+import { isEmpty } from '@graphql-markdown/utils/object';
 
 const obj = {
   bool: true,
@@ -30,18 +42,6 @@ isEmpty(obj); // Returns false
 isEmpty({}); // Returns true
 ```
 
-#### Parameters
-
-| Parameter | Type      | Description                  |
-| :-------- | :-------- | :--------------------------- |
-| `obj`     | `unknown` | the key/value record object. |
-
-#### Returns
-
-`boolean`
-
-`false` if the object is a valid k/v set of records, else `true`.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/object.ts:34](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/object.ts#L34)
diff --git a/packages/utils/docs/prettier.md b/packages/utils/docs/prettier.md
index c2d82996..b9bb9a69 100644
--- a/packages/utils/docs/prettier.md
+++ b/packages/utils/docs/prettier.md
@@ -4,7 +4,7 @@ Internal library for prettifying files using `prettier`.
 
 ## Functions
 
-### prettify()
+### prettify
 
 ```ts
 prettify(content, parser): Promise< string | undefined >
@@ -12,20 +12,12 @@ prettify(content, parser): Promise< string | undefined >
 
 Prettify a string using [prettier.format](https://prettier.io/docs/en/api#prettierformatsource-options).
 
-#### Remarks
-
-This function logs a warning message on error.
-
-#### See
-
-https://prettier.io/docs/en/options#parser for the list of parsers.
-
 #### Parameters
 
-| Parameter | Type     | Description                   |
-| :-------- | :------- | :---------------------------- |
-| `content` | `string` | the string to be prettified.  |
-| `parser`  | `string` | the `prettier` parser to use. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `content` | `string` | the string to be prettified. |
+| `parser` | `string` | the `prettier` parser to use. |
 
 #### Returns
 
@@ -33,32 +25,32 @@ https://prettier.io/docs/en/options#parser for the list of parsers.
 
 a prettified string, or undefined if an error occurred.
 
-#### Source
+#### Remarks
 
-[packages/utils/src/prettier.ts:29](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/prettier.ts#L29)
+This function logs a warning message on error.
 
----
+#### See
 
-### prettifyJavascript()
+https://prettier.io/docs/en/options#parser for the list of parsers.
 
-```ts
-prettifyJavascript(content): Promise< string | undefined >
-```
+#### Defined In
 
-Prettify a Javascript string using [prettify](prettier.md#prettify) and `babel` parser.
+[packages/utils/src/prettier.ts:27](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/prettier.ts#L27)
 
-#### Remarks
+***
 
-Same as `prettify(content, "babel")`.
+### prettifyJavascript
 
-#### See
+```ts
+prettifyJavascript(content): Promise< string | undefined >
+```
 
-[prettify](prettier.md#prettify)
+Prettify a Javascript string using [prettify](prettier.md#prettify) and `babel` parser.
 
 #### Parameters
 
-| Parameter | Type     | Description                  |
-| :-------- | :------- | :--------------------------- |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
 | `content` | `string` | the string to be prettified. |
 
 #### Returns
@@ -67,32 +59,32 @@ Same as `prettify(content, "babel")`.
 
 a prettified string, or undefined if an error occurred.
 
-#### Source
+#### Remarks
 
-[packages/utils/src/prettier.ts:78](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/prettier.ts#L78)
+Same as `prettify(content, "babel")`.
 
----
+#### See
 
-### prettifyMarkdown()
+[prettify](prettier.md#prettify)
 
-```ts
-prettifyMarkdown(content): Promise< string | undefined >
-```
+#### Defined In
 
-Prettify a Markdown string using [prettify](prettier.md#prettify) and `markdown` parser.
+[packages/utils/src/prettier.ts:80](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/prettier.ts#L80)
 
-#### Remarks
+***
 
-Same as `prettify(content, "markdown")`.
+### prettifyMarkdown
 
-#### See
+```ts
+prettifyMarkdown(content): Promise< string | undefined >
+```
 
-[prettify](prettier.md#prettify)
+Prettify a Markdown string using [prettify](prettier.md#prettify) and `markdown` parser.
 
 #### Parameters
 
-| Parameter | Type     | Description                  |
-| :-------- | :------- | :--------------------------- |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
 | `content` | `string` | the string to be prettified. |
 
 #### Returns
@@ -101,6 +93,14 @@ Same as `prettify(content, "markdown")`.
 
 a prettified string, or undefined if an error occurred.
 
-#### Source
+#### Remarks
+
+Same as `prettify(content, "markdown")`.
+
+#### See
+
+[prettify](prettier.md#prettify)
+
+#### Defined In
 
-[packages/utils/src/prettier.ts:57](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/prettier.ts#L57)
+[packages/utils/src/prettier.ts:59](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/prettier.ts#L59)
diff --git a/packages/utils/docs/string.md b/packages/utils/docs/string.md
index 35ab24e8..8e6aaff9 100644
--- a/packages/utils/docs/string.md
+++ b/packages/utils/docs/string.md
@@ -4,7 +4,7 @@ Library of helpers for formatting strings.
 
 ## Functions
 
-### capitalize()
+### capitalize
 
 ```ts
 capitalize(str): string
@@ -12,20 +12,11 @@ capitalize(str): string
 
 Returns a string in lowercase excepted for the 1st character capitalized using [firstUppercase](string.md#firstuppercase).
 
-#### Example
-
-```js
-import { capitalize } from "@graphql-markdown/utils/string";
-
-capitalize("the quick Brown Fox");
-// Expected result: "The quick brown fox"
-```
-
 #### Parameters
 
-| Parameter | Type                  | Description                   |
-| :-------- | :-------------------- | :---------------------------- |
-| `str`     | `Maybe`\< `string` \> | the string to be transformed. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `str` | `Maybe`\< `string` \> | the string to be transformed. |
 
 #### Returns
 
@@ -33,13 +24,22 @@ capitalize("the quick Brown Fox");
 
 a capitalized string, or an empty string if `str` is not a valid string.
 
-#### Source
+#### Example
+
+```js
+import { capitalize } from "@graphql-markdown/utils/string";
+
+capitalize("the quick Brown Fox");
+// Expected result: "The quick brown fox"
+```
+
+#### Defined In
 
 [packages/utils/src/string.ts:184](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L184)
 
----
+***
 
-### escapeMDX()
+### escapeMDX
 
 ```ts
 escapeMDX(str): string
@@ -47,20 +47,11 @@ escapeMDX(str): string
 
 Returns a string with MDX special characters converted to HTML unicode using [toHTMLUnicode](string.md#tohtmlunicode).
 
-#### Example
-
-```js
-import { escapeMDX } from "@graphql-markdown/utils/string";
-
-escapeMDX("{MDX} <special> characters");
-// Expected result: "&#x007B;MDX&#x007D; &#x003C;special&#x003E; characters"
-```
-
 #### Parameters
 
-| Parameter | Type      | Description                   |
-| :-------- | :-------- | :---------------------------- |
-| `str`     | `unknown` | the string to be transformed. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `str` | `unknown` | the string to be transformed. |
 
 #### Returns
 
@@ -68,13 +59,22 @@ escapeMDX("{MDX} <special> characters");
 
 a string with MDX special characters replaced by HTML unicode equivalents.
 
-#### Source
+#### Example
+
+```js
+import { escapeMDX } from "@graphql-markdown/utils/string";
+
+escapeMDX("{MDX} <special> characters");
+// Expected result: "&#x007B;MDX&#x007D; &#x003C;special&#x003E; characters"
+```
+
+#### Defined In
 
 [packages/utils/src/string.ts:140](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L140)
 
----
+***
 
-### firstUppercase()
+### firstUppercase
 
 ```ts
 firstUppercase(str): string
@@ -82,20 +82,11 @@ firstUppercase(str): string
 
 Returns a string with the 1st character in uppercase.
 
-#### Example
-
-```js
-import { firstUppercase } from "@graphql-markdown/utils/string";
-
-firstUppercase("the quick Brown Fox");
-// Expected result: "The quick Brown Fox"
-```
-
 #### Parameters
 
-| Parameter | Type                  | Description                   |
-| :-------- | :-------------------- | :---------------------------- |
-| `str`     | `Maybe`\< `string` \> | the string to be transformed. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `str` | `Maybe`\< `string` \> | the string to be transformed. |
 
 #### Returns
 
@@ -103,13 +94,22 @@ firstUppercase("the quick Brown Fox");
 
 a string with the 1st character in uppercase, or an empty string if `str` is not a valid string.
 
-#### Source
+#### Example
+
+```js
+import { firstUppercase } from "@graphql-markdown/utils/string";
+
+firstUppercase("the quick Brown Fox");
+// Expected result: "The quick Brown Fox"
+```
+
+#### Defined In
 
 [packages/utils/src/string.ts:160](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L160)
 
----
+***
 
-### kebabCase()
+### kebabCase
 
 ```ts
 kebabCase(str): string
@@ -117,20 +117,11 @@ kebabCase(str): string
 
 Returns a lowercase string with `-` as replacement for non alphanum characters using [stringCaseBuilder](string.md#stringcasebuilder).
 
-#### Example
-
-```js
-import { kebabCase } from "@graphql-markdown/utils/string";
-
-kebabCase("The quick brown Fox");
-// Expected result: "the-quick-brown-fox"
-```
-
 #### Parameters
 
-| Parameter | Type                  | Description                   |
-| :-------- | :-------------------- | :---------------------------- |
-| `str`     | `Maybe`\< `string` \> | the string to be transformed. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `str` | `Maybe`\< `string` \> | the string to be transformed. |
 
 #### Returns
 
@@ -138,13 +129,22 @@ kebabCase("The quick brown Fox");
 
 a string converted to start case, or an empty string if `str` is not a valid string.
 
-#### Source
+#### Example
+
+```js
+import { kebabCase } from "@graphql-markdown/utils/string";
+
+kebabCase("The quick brown Fox");
+// Expected result: "the-quick-brown-fox"
+```
+
+#### Defined In
 
 [packages/utils/src/string.ts:258](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L258)
 
----
+***
 
-### prune()
+### prune
 
 ```ts
 prune(str, substr = ""): string
@@ -152,6 +152,19 @@ prune(str, substr = ""): string
 
 Returns a string pruned on both start and end, similar to `trim()` but with any substring.
 
+#### Parameters
+
+| Parameter | Type | Default value | Description |
+| :------ | :------ | :------ | :------ |
+| `str` | `Maybe`\< `string` \> | `undefined` | the string to be pruned. |
+| `substr` | `string` | `""` | the substring to be removed from `str`. |
+
+#### Returns
+
+`string`
+
+a pruned string, or an empty string if `str` is not a valid string.
+
 #### Example
 
 ```js
@@ -163,26 +176,13 @@ prune(text, "**");
 // Expected result: "The quick brown fox jumps over the lazy dog."
 ```
 
-#### Parameters
-
-| Parameter | Type                  | Default value | Description                             |
-| :-------- | :-------------------- | :------------ | :-------------------------------------- |
-| `str`     | `Maybe`\< `string` \> | `undefined`   | the string to be pruned.                |
-| `substr`  | `string`              | `""`          | the substring to be removed from `str`. |
-
-#### Returns
-
-`string`
-
-a pruned string, or an empty string if `str` is not a valid string.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/string.ts:82](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L82)
 
----
+***
 
-### replaceDiacritics()
+### replaceDiacritics
 
 ```ts
 replaceDiacritics(str): string
@@ -190,6 +190,20 @@ replaceDiacritics(str): string
 
 Replaces diacritics by non-diacritic equivalent characters.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `str` | `Maybe`\< `string` \> | the string to be transformed. |
+
+#### Returns
+
+`string`
+
+a string with diacritic characters replaced, or an empty string if `str` is not a valid string.
+
+ *
+
 #### Example
 
 ```js
@@ -202,27 +216,13 @@ replaceDiacritics("Âéêś"); // Expected result: "Aees"
 
 [StackOverflow source](https://stackoverflow.com/a/37511463).
 
-#### Parameters
-
-| Parameter | Type                  | Description                   |
-| :-------- | :-------------------- | :---------------------------- |
-| `str`     | `Maybe`\< `string` \> | the string to be transformed. |
-
-#### Returns
-
-`string`
-
-a string with diacritic characters replaced, or an empty string if `str` is not a valid string.
-
--
-
-#### Source
+#### Defined In
 
 [packages/utils/src/string.ts:209](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L209)
 
----
+***
 
-### slugify()
+### slugify
 
 ```ts
 slugify(str): string
@@ -232,21 +232,21 @@ Alias of [kebabCase](string.md#kebabcase).
 
 #### Parameters
 
-| Parameter | Type                  |
-| :-------- | :-------------------- |
-| `str`     | `Maybe`\< `string` \> |
+| Parameter | Type |
+| :------ | :------ |
+| `str` | `Maybe`\< `string` \> |
 
 #### Returns
 
 `string`
 
-#### Source
+#### Defined In
 
 [packages/utils/src/string.ts:258](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L258)
 
----
+***
 
-### startCase()
+### startCase
 
 ```ts
 startCase(str): string
@@ -254,20 +254,11 @@ startCase(str): string
 
 Applies [firstUppercase](string.md#firstuppercase) using [stringCaseBuilder](string.md#stringcasebuilder) to every word of a string with `space` character as separator.
 
-#### Example
-
-```js
-import { startCase } from "@graphql-markdown/utils/string";
-
-startCase("the quick Brown Fox");
-// Expected result: "The Quick Brown Fox"
-```
-
 #### Parameters
 
-| Parameter | Type                  | Description                   |
-| :-------- | :-------------------- | :---------------------------- |
-| `str`     | `Maybe`\< `string` \> | the string to be transformed. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `str` | `Maybe`\< `string` \> | the string to be transformed. |
 
 #### Returns
 
@@ -275,13 +266,22 @@ startCase("the quick Brown Fox");
 
 a string converted to start case, or an empty string if `str` is not a valid string.
 
-#### Source
+#### Example
+
+```js
+import { startCase } from "@graphql-markdown/utils/string";
+
+startCase("the quick Brown Fox");
+// Expected result: "The Quick Brown Fox"
+```
+
+#### Defined In
 
 [packages/utils/src/string.ts:234](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L234)
 
----
+***
 
-### stringCaseBuilder()
+### stringCaseBuilder
 
 ```ts
 stringCaseBuilder(
@@ -296,6 +296,21 @@ By default `splitter` expression will split the string into words, where non-alp
 `separator` will be used for joining the words back together.
 [prune](string.md#prune) using `separator` is applied to the result of the transformation.
 
+#### Parameters
+
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `str` | `Maybe`\< `string` \> | the string to be transformed. |
+| `transformation`? | `Maybe`\< (`word`) => `string` \> | optional transformation callback function. |
+| `separator`? | `string` | optional character separator for word-based transformation. |
+| `splitter`? | `string` \| `RegExp` | optional regex or string rule for splitting string into word. |
+
+#### Returns
+
+`string`
+
+a transformed string, or an empty string if `str` is not a valid string.
+
 #### Example
 
 ```js
@@ -308,28 +323,13 @@ stringCaseBuilder(text, transformation, " ");
 // Expected result: "*The* *quick* *brown* *fox* *jumps* *over* *the* *lazy* *dog*"
 ```
 
-#### Parameters
-
-| Parameter         | Type                              | Description                                                   |
-| :---------------- | :-------------------------------- | :------------------------------------------------------------ |
-| `str`             | `Maybe`\< `string` \>             | the string to be transformed.                                 |
-| `transformation`? | `Maybe`\< (`word`) => `string` \> | the transformation function.                                  |
-| `separator`?      | `string`                          | optional character separator for word-based transformation.   |
-| `splitter`?       | `string` \| `RegExp`              | optional regex or string rule for splitting string into word. |
-
-#### Returns
-
-`string`
-
-a transformed string, or an empty string if `str` is not a valid string.
-
-#### Source
+#### Defined In
 
 [packages/utils/src/string.ts:36](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L36)
 
----
+***
 
-### toHTMLUnicode()
+### toHTMLUnicode
 
 ```ts
 toHTMLUnicode(char): string
@@ -337,19 +337,11 @@ toHTMLUnicode(char): string
 
 Converts a character to its equivalent HTML unicode representation `&#x0000`.
 
-#### Example
-
-```js
-import { toHTMLUnicode } from "@graphql-markdown/utils/string";
-
-toHTMLUnicode("%"); // Expected result: "&#x0025;"
-```
-
 #### Parameters
 
-| Parameter | Type                  | Description                      |
-| :-------- | :-------------------- | :------------------------------- |
-| `char`    | `Maybe`\< `string` \> | the character to be transformed. |
+| Parameter | Type | Description |
+| :------ | :------ | :------ |
+| `char` | `Maybe`\< `string` \> | the character to be transformed. |
 
 #### Returns
 
@@ -357,6 +349,14 @@ toHTMLUnicode("%"); // Expected result: "&#x0025;"
 
 a HTML unicode representation of `char`, or an empty string if `char` is not a valid string.
 
-#### Source
+#### Example
+
+```js
+import { toHTMLUnicode } from "@graphql-markdown/utils/string";
+
+toHTMLUnicode("%"); // Expected result: "&#x0025;"
+```
+
+#### Defined In
 
 [packages/utils/src/string.ts:114](https://github.com/graphql-markdown/graphql-markdown/blob/main/packages/utils/src/string.ts#L114)
diff --git a/packages/utils/src/fs.ts b/packages/utils/src/fs.ts
index de7644a3..3e1269ce 100644
--- a/packages/utils/src/fs.ts
+++ b/packages/utils/src/fs.ts
@@ -7,7 +7,7 @@
 import { mkdir, stat, writeFile } from "node:fs/promises";
 import { dirname } from "node:path";
 
-import type { Maybe } from "@graphql-markdown/types";
+import type { PrettifyCallbackFunction } from "@graphql-markdown/types";
 
 export { readFile, copyFile } from "node:fs/promises";
 
@@ -85,7 +85,7 @@ export async function fileExists(location: string): Promise<boolean> {
 export async function saveFile(
   location: string,
   content: string,
-  prettify?: (text: string, options?: unknown) => Promise<Maybe<string>>,
+  prettify?: PrettifyCallbackFunction,
 ): Promise<void> {
   if (typeof prettify === "function") {
     content = (await prettify(content)) ?? content;
diff --git a/packages/utils/src/graphql/directive.ts b/packages/utils/src/graphql/directive.ts
index d03fd46a..b34dbaa9 100644
--- a/packages/utils/src/graphql/directive.ts
+++ b/packages/utils/src/graphql/directive.ts
@@ -29,7 +29,7 @@ export const WILDCARD_DIRECTIVE = "*" as const;
 /**
  * Returns a custom directives map with custom handlers from `customDirective`.
  *
- * @param schemaMap - the GraphQL schema map returned by {@link getSchemaMap}
+ * @param schemaMap - the GraphQL schema map returned by {@link graphql/introspection!getSchemaMap}
  * @param customDirectiveOptions - the `customDirective` option.
  *
  * @returns a custom directive map, or undefined if no match.
diff --git a/packages/utils/src/graphql/formatter.ts b/packages/utils/src/graphql/formatter.ts
index a58f77f1..e8e29381 100644
--- a/packages/utils/src/graphql/formatter.ts
+++ b/packages/utils/src/graphql/formatter.ts
@@ -22,8 +22,9 @@ import type { Maybe } from "@graphql-markdown/types";
  * Returns a printable formatted value for a GraphQL type.
  * This is the generic function.
  *
- * @param type - the GraphQL schema type.
- * @param defaultValue - the GraphQL schema type's value to be processed
+ * @param entity - the GraphQL schema entity processed.
+ * @param entity.type - the GraphQL schema type.
+ * @param entity.defaultValue - the GraphQL schema type's value to be formatted.
  *
  * @returns a printable formatted value.
  *
diff --git a/packages/utils/src/graphql/group.ts b/packages/utils/src/graphql/group.ts
index 59277dbc..87a4e965 100644
--- a/packages/utils/src/graphql/group.ts
+++ b/packages/utils/src/graphql/group.ts
@@ -19,7 +19,7 @@ import { hasAstNode } from "./introspection";
 /**
  * Parses a GraphQL schema to build a map of entities with matching `groupByDirective` option.
  *
- * @param schemaMap - the GraphQL schema map returned by {@link getSchemaMap}
+ * @param schemaMap - the GraphQL schema map returned by {@link graphql/introspection!getSchemaMap}
  * @param groupByDirective - the `groupByDirective` option.
  *
  * @returns a map of entities with matching group name.
diff --git a/packages/utils/src/graphql/guard.ts b/packages/utils/src/graphql/guard.ts
index 119d1c1d..2e13ec3d 100644
--- a/packages/utils/src/graphql/guard.ts
+++ b/packages/utils/src/graphql/guard.ts
@@ -3,10 +3,13 @@
  *
  * @packageDocumentation
  */
-
-import type { GraphQLOperationType } from "@graphql-markdown/types";
 import type { GraphQLField } from "graphql";
 
+import type {
+  GraphQLOperationType,
+  DeprecatedType,
+} from "@graphql-markdown/types";
+
 export {
   isDirective as isDirectiveType,
   isEnumType,
@@ -64,9 +67,7 @@ export function instanceOf<T>(obj: unknown, type: new () => T): obj is T {
  * @param obj - an instance of `T`.
  *
  */
-export function isDeprecated<T>(
-  obj: T,
-): obj is Partial<{ deprecationReason: string; isDeprecated: boolean }> & T {
+export function isDeprecated<T>(obj: T): obj is DeprecatedType<T> {
   return (
     typeof obj === "object" &&
     obj !== null &&
diff --git a/packages/utils/src/graphql/introspection.ts b/packages/utils/src/graphql/introspection.ts
index dbdbec40..82cf7a6b 100644
--- a/packages/utils/src/graphql/introspection.ts
+++ b/packages/utils/src/graphql/introspection.ts
@@ -18,12 +18,12 @@ import {
 
 import type {
   ASTNode,
+  AstNodeType,
   DirectiveDefinitionNode,
   DirectiveNode,
   GraphQLNamedType,
   GraphQLOperationType,
   Maybe,
-  ObjectTypeDefinitionNode,
   SchemaEntity,
   SchemaMap,
 } from "@graphql-markdown/types";
@@ -89,9 +89,7 @@ export function getTypeFromSchema<T>(
  * @returns `true` if the entity has an AST node property, else `false`.
  *
  */
-export function hasAstNode<T>(
-  node: T,
-): node is Required<{ astNode: ObjectTypeDefinitionNode }> & T {
+export function hasAstNode<T>(node: T): node is AstNodeType<T> {
   return typeof (node as Record<string, unknown>)["astNode"] === "object";
 }
 
@@ -234,6 +232,10 @@ export function getTypeDirectiveValues(
  */
 export function __getFields<T, V>(
   type: T,
+  /**
+   * @param fieldMap - a field map to be processed.
+   * @returns a new field map.
+   */
   processor?: (fieldMap: Record<string, unknown>) => V,
   fallback?: V,
 ): GraphQLFieldMap<unknown, unknown> | GraphQLInputFieldMap | V {
diff --git a/packages/utils/src/graphql/loader.ts b/packages/utils/src/graphql/loader.ts
index 37429a7e..f40a95bf 100644
--- a/packages/utils/src/graphql/loader.ts
+++ b/packages/utils/src/graphql/loader.ts
@@ -41,6 +41,10 @@ import type {
 export async function loadSchema(
   schemaLocation: string,
   options: LoadSchemaOptions & {
+    /**
+     * @param rootTypes - optional `rootTypes` schema override
+     * @see {@link https://graphql-markdown.github.io/docs/advanced/custom-root-types | Custom root types}
+     */
     rootTypes?: Partial<Record<OperationTypeNode, string>>;
   },
 ): Promise<GraphQLSchema> {
@@ -80,7 +84,7 @@ export async function loadSchema(
  *
  * @returns a list of loader objects.
  *
- * @throws {@link Error} if no loader loader, or an error occurred when importing a loader package.
+ * @throws an `Error` if no loader has been loaded, or if an error occurred while importing loaders.
  *
  * @example
  * ```js
diff --git a/packages/utils/src/graphql/relation.ts b/packages/utils/src/graphql/relation.ts
index f58f6d9d..4ccd0318 100644
--- a/packages/utils/src/graphql/relation.ts
+++ b/packages/utils/src/graphql/relation.ts
@@ -50,7 +50,7 @@ type RelationOfCallbackFunction<T> = (
  *
  * @param type - the GraphQL schema type being processed.
  * @param relations - the map of relations to be returned.
- * @param schemaMap - a GraphQL schema map (see {@link getSchemaMap}).
+ * @param schemaMap - a GraphQL schema map (see {@link graphql/introspection!getSchemaMap}).
  * @param callback - a function to execute for each entries of the schema map.
  *
  * @returns a record map of type `relations`.
@@ -96,7 +96,7 @@ function mapRelationOf<
  * @typeParam R - the return type of map of relations (see {@link IGetRelation}).
  *
  * @param type - the GraphQL schema type being processed.
- * @param schemaMap - a GraphQL schema map (see {@link getSchemaMap}).
+ * @param schemaMap - a GraphQL schema map (see {@link graphql/introspection!getSchemaMap}).
  *
  * @returns a record map of operations relations.
  *
@@ -156,7 +156,7 @@ export const getRelationOfReturn: IGetRelation<GraphQLOperationType> = (
  * @typeParam R - the return type of map of relations (see {@link IGetRelation}).
  *
  * @param type - the GraphQL schema type being processed.
- * @param schemaMap - a GraphQL schema map (see {@link getSchemaMap}).
+ * @param schemaMap - a GraphQL schema map (see {@link graphql/introspection!getSchemaMap}).
  *
  * @returns a record map of fields and arguments relations.
  *
@@ -228,7 +228,7 @@ export const getRelationOfField: IGetRelation<RelationOfField> = <T>(
  * @typeParam R - the return type of map of relations (see {@link IGetRelation}).
  *
  * @param type - the GraphQL schema type being processed.
- * @param schemaMap - a GraphQL schema map (see {@link getSchemaMap}).
+ * @param schemaMap - a GraphQL schema map (see {@link graphql/introspection!getSchemaMap}).
  *
  * @returns a record map of unions relations.
  *
@@ -281,7 +281,7 @@ export const getRelationOfUnion: IGetRelation<GraphQLUnionType> = <T>(
  * @typeParam R - the return type of map of relations (see {@link IGetRelation}).
  *
  * @param type - the GraphQL schema type being processed.
- * @param schemaMap - a GraphQL schema map (see {@link getSchemaMap}).
+ * @param schemaMap - a GraphQL schema map (see {@link graphql/introspection!getSchemaMap}).
  *
  * @returns a record map of interfaces relations.
  *
@@ -335,7 +335,7 @@ export const getRelationOfInterface: IGetRelation<RelationOfInterface> = <T>(
  * @typeParam R - the return type of map of relations (see {@link IGetRelation}).
  *
  * @param type - the GraphQL schema type being processed.
- * @param schemaMap - a GraphQL schema map (see {@link getSchemaMap}).
+ * @param schemaMap - a GraphQL schema map (see {@link graphql/introspection!getSchemaMap}).
  *
  * @returns a record map of unions or interfaces relations.
  *
diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts
index 2acef791..c0ae13e2 100644
--- a/packages/utils/src/index.ts
+++ b/packages/utils/src/index.ts
@@ -5,4 +5,3 @@ export * from "./object";
 export * from "./string";
 export * as pathUrl from "./url";
 export * from "./graphql";
-export * from "./logger";
diff --git a/packages/utils/src/prettier.ts b/packages/utils/src/prettier.ts
index 14eec5d2..1bf397b1 100644
--- a/packages/utils/src/prettier.ts
+++ b/packages/utils/src/prettier.ts
@@ -4,11 +4,9 @@
  * @packageDocumentation
  */
 
-/* istanbul ignore file */
-
-import { Logger } from "./logger";
+import type { LoggerType } from "@graphql-markdown/types";
 
-const logger = Logger();
+/* istanbul ignore file */
 
 /**
  * Prettify a string using {@link https://prettier.io/docs/en/api#prettierformatsource-options | prettier.format}.
@@ -34,7 +32,11 @@ export async function prettify(
     const { format } = await import("prettier");
     return await format(content, { parser });
   } catch (error: unknown) {
-    logger.warn("Prettier is not found");
+    if ("logger" in global) {
+      (global.logger as LoggerType).warn("Prettier is not found");
+    } else {
+      console.log("Prettier is not found");
+    }
     return undefined;
   }
 }
diff --git a/packages/utils/src/string.ts b/packages/utils/src/string.ts
index ea01b4ef..1f25eea7 100644
--- a/packages/utils/src/string.ts
+++ b/packages/utils/src/string.ts
@@ -15,7 +15,7 @@ import type { Maybe } from "@graphql-markdown/types";
  * @internal
  *
  * @param str - the string to be transformed.
- * @param transformation - the transformation function.
+ * @param transformation - optional transformation callback function.
  * @param separator - optional character separator for word-based transformation.
  * @param splitter - optional regex or string rule for splitting string into word.
  *
diff --git a/packages/utils/typedoc.json b/packages/utils/typedoc.json
index b72193dd..31345f6d 100644
--- a/packages/utils/typedoc.json
+++ b/packages/utils/typedoc.json
@@ -1,6 +1,6 @@
 {
   "extends": ["../../typedoc.base.json"],
-  "entryPoints": ["src/"],
+  "entryPoints": ["./src"],
   "entryPointStrategy": "expand",
   "out": "./docs"
 }
diff --git a/tsconfig.json b/tsconfig.json
index e368022e..e6cf6b6b 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -2,11 +2,12 @@
   "files": [],
 
   "references": [
-    { "path": "packages/utils" },
     { "path": "packages/core" },
     { "path": "packages/diff" },
+    { "path": "packages/docusaurus" },
     { "path": "packages/helpers" },
+    { "path": "packages/logger" },
     { "path": "packages/printer-legacy" },
-    { "path": "packages/docusaurus" }
+    { "path": "packages/utils" }
   ]
 }
diff --git a/typedoc.base.json b/typedoc.base.json
index b1b49a42..015ad83d 100644
--- a/typedoc.base.json
+++ b/typedoc.base.json
@@ -1,6 +1,6 @@
 {
   "$schema": "https://typedoc.org/schema.json",
-  "plugin": ["typedoc-plugin-markdown", "typedoc-plugin-frontmatter"],
+  "plugin": ["typedoc-plugin-markdown"],
   "entryFileName": "index.md",
   "exclude": ["**/index.ts"],
   "excludeExternals": true,
@@ -18,5 +18,8 @@
   "readme": "none",
   "skipIndexPage": true,
   "theme": "default",
-  "visibilityFilters": {}
+  "visibilityFilters": {},
+  "validation": {
+    "notDocumented": true
+  }
 }
diff --git a/typedoc.json b/typedoc.json
index 8d4e7eaf..f45d4293 100644
--- a/typedoc.json
+++ b/typedoc.json
@@ -1,5 +1,6 @@
 {
   "extends": ["./typedoc.base.json"],
+  "plugin": ["typedoc-plugin-markdown", "typedoc-plugin-frontmatter"],
   "entryPoints": ["packages/*"],
   "entryPointStrategy": "packages",
   "name": "api",


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index ebbe9c4b..c9e51155 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -20,7 +20,7 @@ jobs:
       fail-fast: false
       matrix:
         package:
-          ["docusaurus", "core", "diff", "printer-legacy", "utils", "helpers"]
+          ["docusaurus", "core", "diff", "printer-legacy", "utils", "helpers", "logger"]
 
     steps:
       - name: Checkout Code Base
diff --git a/packages/core/tests/unit/generator.test.ts b/packages/core/tests/unit/generator.test.ts
index d7acc1b6..53691fe3 100644
--- a/packages/core/tests/unit/generator.test.ts
+++ b/packages/core/tests/unit/generator.test.ts
@@ -10,9 +10,7 @@ import type {
 
 import * as Utils from "@graphql-markdown/utils";
 jest.mock("@graphql-markdown/utils", () => {
-  const utils = jest.requireActual("@graphql-markdown/utils");
   return {
-    Logger: utils.Logger,
     getCustomDirectives: jest.fn(),
     getDocumentLoaders: jest.fn(),
     getGroups: jest.fn(),
diff --git a/packages/utils/tests/__data__/dummy_logger.js b/packages/logger/tests/__data__/dummy_logger.js
similarity index 100%
rename from packages/utils/tests/__data__/dummy_logger.js
rename to packages/logger/tests/__data__/dummy_logger.js
diff --git a/packages/logger/tests/__mocks__/.gitkeep b/packages/logger/tests/__mocks__/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/packages/utils/tests/unit/logger.test.ts b/packages/logger/tests/unit/logger.test.ts
similarity index 66%
rename from packages/utils/tests/unit/logger.test.ts
rename to packages/logger/tests/unit/logger.test.ts
index 81e7abc9..5a4b5a7b 100644
--- a/packages/utils/tests/unit/logger.test.ts
+++ b/packages/logger/tests/unit/logger.test.ts
@@ -1,4 +1,4 @@
-import Logger from "../../src/logger";
+import Logger from "../../src";
 
 describe("logger", () => {
   afterEach(() => {
@@ -15,6 +15,7 @@ describe("logger", () => {
         .mockImplementation(() => "Mocked Console");
 
       expect(Logger().info()).toBe("Mocked Console");
+      expect(global.logger).toBeDefined();
     });
 
     test.each([[undefined], [""]])(
@@ -27,6 +28,7 @@ describe("logger", () => {
           .mockImplementation(() => "Mocked Console");
 
         expect(Logger(moduleName).info()).toBe("Mocked Console");
+        expect(global.logger).toBeDefined();
       },
     );
 
@@ -45,13 +47,12 @@ describe("logger", () => {
       );
     });
 
-    test("returns module passed as logger", () => {
+    test("returns module passed with aliased methods", () => {
       expect.hasAssertions();
 
       const logger = Logger(require.resolve("../__data__/dummy_logger"));
 
-      expect(logger.info()).toBe("Dummy logger");
-
+      expect(global.logger).toBeDefined();
       expect(logger).toEqual(
         expect.objectContaining({
           debug: expect.any(Function),
@@ -62,6 +63,27 @@ describe("logger", () => {
           warn: expect.any(Function),
         }),
       );
+      expect(logger.log()).toBe("Dummy logger");
+      expect(logger.debug()).toBe("Dummy logger");
+      expect(logger.error()).toBe("Dummy logger");
+      expect(logger.log()).toBe("Dummy logger");
+      expect(logger.success()).toBe("Dummy logger");
+      expect(logger.warn()).toBe("Dummy logger");
+    });
+
+    test("overrides current logger", async () => {
+      expect.hasAssertions();
+
+      jest
+        .spyOn(global.console, "info")
+        .mockImplementation(() => "Mocked Console");
+
+      Logger();
+      expect(global.logger).toBeDefined();
+
+      const logger = Logger(require.resolve("../__data__/dummy_logger"));
+
+      expect(logger.info()).toBe("Dummy logger");
     });
   });
 });
diff --git a/packages/logger/tsconfig.test.json b/packages/logger/tsconfig.test.json
new file mode 100644
index 00000000..4af739cc
--- /dev/null
+++ b/packages/logger/tsconfig.test.json
@@ -0,0 +1,19 @@
+{
+  "extends": "./tsconfig.json",
+
+  "compilerOptions": {
+    "rootDir": "./",
+
+    "noEmit": true,
+
+    "types": ["node", "@types/jest"],
+
+    "paths": {
+      "@graphql-markdown/types": ["../types/src/index.d.ts"],
+      "@graphql-markdown/*": ["../*/src/index.ts"]
+    }
+  },
+
+  "include": ["tests", "src", "assets"],
+  "exclude": ["**/data", "*.js", "**/dist"]
+}