JavaScript documentation.
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 30 Aug 2023 07:43:46 +0000 (09:43 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 30 Aug 2023 07:43:46 +0000 (09:43 +0200)
Makefile
org.argeo.app.geo.js/package-lock.json
org.argeo.app.geo.js/package.json
org.argeo.app.geo.js/src/org.argeo.app.geo.js/MapPart.js
org.argeo.app.geo.js/src/org.argeo.app.geo.js/OpenLayersMapPart.js
org.argeo.app.geo.js/src/org.argeo.app.geo.js/export-package.js
org.argeo.app.geo.js/webpack.common.js

index 318a122389ca23e0d15884608bd22320fb7501c9..092541769fb3a9b741ca56c673e15072fc76cda4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -52,6 +52,10 @@ web:
 
 npm-install:
        cd org.argeo.app.geo.js && npm install
+       
+jsdoc:
+       org.argeo.app.geo.js/node_modules/.bin/jsdoc -r org.argeo.app.geo.js/src/org.argeo.app.geo.js \
+               -d $(SDK_BUILD_BASE)/jsdoc/org.argeo.app.geo.js
 
 
 include  $(SDK_SRC_BASE)/sdk/argeo-build/osgi.mk
\ No newline at end of file
index 9765ab796a67a71147aaf38d1a2028f1075ff6f4..775cf049337b825120b4b75e7b112c90ec0af7cd 100644 (file)
@@ -14,6 +14,7 @@
                                "css-loader": "^6.8.1",
                                "css-minimizer-webpack-plugin": "^5.0.1",
                                "html-webpack-plugin": "^5.5.3",
+                               "jsdoc": "^4.0.2",
                                "mini-css-extract-plugin": "^2.7.6",
                                "npm-check-updates": "^16.13.2",
                                "style-loader": "^3.3.3",
                                "webpack-merge": "^5.9.0"
                        }
                },
+               "node_modules/@babel/parser": {
+                       "version": "7.22.13",
+                       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz",
+                       "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==",
+                       "dev": true,
+                       "bin": {
+                               "parser": "bin/babel-parser.js"
+                       },
+                       "engines": {
+                               "node": ">=6.0.0"
+                       }
+               },
                "node_modules/@colors/colors": {
                        "version": "1.5.0",
                        "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
                                "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
                        }
                },
-               "node_modules/@jest/types/node_modules/ansi-styles": {
-                       "version": "4.3.0",
-                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-                       "dev": true,
-                       "dependencies": {
-                               "color-convert": "^2.0.1"
-                       },
-                       "engines": {
-                               "node": ">=8"
-                       },
-                       "funding": {
-                               "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-                       }
-               },
-               "node_modules/@jest/types/node_modules/chalk": {
-                       "version": "4.1.2",
-                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-                       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-                       "dev": true,
-                       "dependencies": {
-                               "ansi-styles": "^4.1.0",
-                               "supports-color": "^7.1.0"
-                       },
-                       "engines": {
-                               "node": ">=10"
-                       },
-                       "funding": {
-                               "url": "https://github.com/chalk/chalk?sponsor=1"
-                       }
-               },
-               "node_modules/@jest/types/node_modules/supports-color": {
-                       "version": "7.2.0",
-                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-                       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-                       "dev": true,
-                       "dependencies": {
-                               "has-flag": "^4.0.0"
-                       },
-                       "engines": {
-                               "node": ">=8"
-                       }
-               },
                "node_modules/@jridgewell/gen-mapping": {
                        "version": "0.3.3",
                        "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
                                "@jridgewell/sourcemap-codec": "^1.4.14"
                        }
                },
+               "node_modules/@jsdoc/salty": {
+                       "version": "0.2.5",
+                       "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz",
+                       "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==",
+                       "dev": true,
+                       "dependencies": {
+                               "lodash": "^4.17.21"
+                       },
+                       "engines": {
+                               "node": ">=v12.0.0"
+                       }
+               },
                "node_modules/@mapbox/jsonlint-lines-primitives": {
                        "version": "2.0.2",
                        "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
                        "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
                        "dev": true
                },
+               "node_modules/@types/linkify-it": {
+                       "version": "3.0.2",
+                       "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
+                       "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
+                       "dev": true
+               },
+               "node_modules/@types/markdown-it": {
+                       "version": "12.2.3",
+                       "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
+                       "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
+                       "dev": true,
+                       "dependencies": {
+                               "@types/linkify-it": "*",
+                               "@types/mdurl": "*"
+                       }
+               },
+               "node_modules/@types/mdurl": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
+                       "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
+                       "dev": true
+               },
                "node_modules/@types/node": {
                        "version": "20.5.7",
                        "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz",
                        }
                },
                "node_modules/ansi-styles": {
-                       "version": "6.2.1",
-                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
-                       "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+                       "version": "4.3.0",
+                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
                        "dev": true,
+                       "dependencies": {
+                               "color-convert": "^2.0.1"
+                       },
                        "engines": {
-                               "node": ">=12"
+                               "node": ">=8"
                        },
                        "funding": {
                                "url": "https://github.com/chalk/ansi-styles?sponsor=1"
                        "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
                        "dev": true
                },
+               "node_modules/bluebird": {
+                       "version": "3.7.2",
+                       "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+                       "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+                       "dev": true
+               },
                "node_modules/boolbase": {
                        "version": "1.0.0",
                        "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
                                "url": "https://github.com/sponsors/sindresorhus"
                        }
                },
+               "node_modules/boxen/node_modules/chalk": {
+                       "version": "5.3.0",
+                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+                       "dev": true,
+                       "engines": {
+                               "node": "^12.17.0 || ^14.13 || >=16.0.0"
+                       },
+                       "funding": {
+                               "url": "https://github.com/chalk/chalk?sponsor=1"
+                       }
+               },
                "node_modules/boxen/node_modules/emoji-regex": {
                        "version": "9.2.2",
                        "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
                                }
                        ]
                },
+               "node_modules/catharsis": {
+                       "version": "0.9.0",
+                       "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
+                       "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
+                       "dev": true,
+                       "dependencies": {
+                               "lodash": "^4.17.15"
+                       },
+                       "engines": {
+                               "node": ">= 10"
+                       }
+               },
                "node_modules/chalk": {
-                       "version": "5.3.0",
-                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
-                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+                       "version": "4.1.2",
+                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+                       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
                        "dev": true,
+                       "dependencies": {
+                               "ansi-styles": "^4.1.0",
+                               "supports-color": "^7.1.0"
+                       },
                        "engines": {
-                               "node": "^12.17.0 || ^14.13 || >=16.0.0"
+                               "node": ">=10"
                        },
                        "funding": {
                                "url": "https://github.com/chalk/chalk?sponsor=1"
                        }
                },
+               "node_modules/chalk/node_modules/supports-color": {
+                       "version": "7.2.0",
+                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                       "dev": true,
+                       "dependencies": {
+                               "has-flag": "^4.0.0"
+                       },
+                       "engines": {
+                               "node": ">=8"
+                       }
+               },
                "node_modules/chownr": {
                        "version": "2.0.0",
                        "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
                                }
                        }
                },
-               "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": {
-                       "version": "29.6.4",
-                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz",
-                       "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==",
-                       "dev": true,
-                       "dependencies": {
-                               "@types/node": "*",
-                               "jest-util": "^29.6.3",
-                               "merge-stream": "^2.0.0",
-                               "supports-color": "^8.0.0"
-                       },
-                       "engines": {
-                               "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-                       }
-               },
                "node_modules/css-select": {
                        "version": "4.3.0",
                        "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
                        "dev": true
                },
                "node_modules/electron-to-chromium": {
-                       "version": "1.4.504",
-                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.504.tgz",
-                       "integrity": "sha512-cSMwIAd8yUh54VwitVRVvHK66QqHWE39C3DRj8SWiXitEpVSY3wNPD9y1pxQtLIi4w3UdzF9klLsmuPshz09DQ==",
+                       "version": "1.4.505",
+                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.505.tgz",
+                       "integrity": "sha512-0A50eL5BCCKdxig2SsCXhpuztnB9PfUgRMojj5tMvt8O54lbwz3t6wNgnpiTRosw5QjlJB7ixhVyeg8daLQwSQ==",
                        "dev": true
                },
                "node_modules/emoji-regex": {
                        }
                },
                "node_modules/entities": {
-                       "version": "2.2.0",
-                       "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
-                       "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
+                       "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
                        "dev": true,
                        "funding": {
                                "url": "https://github.com/fb55/entities?sponsor=1"
                                "url": "https://github.com/sponsors/sindresorhus"
                        }
                },
+               "node_modules/escape-string-regexp": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+                       "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+                       "dev": true,
+                       "engines": {
+                               "node": ">=8"
+                       }
+               },
                "node_modules/eslint-scope": {
                        "version": "5.1.1",
                        "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
                        }
                },
                "node_modules/jackspeak": {
-                       "version": "2.3.0",
-                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.0.tgz",
-                       "integrity": "sha512-uKmsITSsF4rUWQHzqaRUuyAir3fZfW3f202Ee34lz/gZCi970CPZwyQXLGNgWJvvZbvFyzeyGq0+4fcG/mBKZg==",
+                       "version": "2.3.1",
+                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.1.tgz",
+                       "integrity": "sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==",
                        "dev": true,
                        "dependencies": {
                                "@isaacs/cliui": "^8.0.2",
                                "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
                        }
                },
-               "node_modules/jest-util/node_modules/ansi-styles": {
-                       "version": "4.3.0",
-                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-                       "dev": true,
-                       "dependencies": {
-                               "color-convert": "^2.0.1"
-                       },
-                       "engines": {
-                               "node": ">=8"
-                       },
-                       "funding": {
-                               "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-                       }
-               },
-               "node_modules/jest-util/node_modules/chalk": {
-                       "version": "4.1.2",
-                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-                       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-                       "dev": true,
-                       "dependencies": {
-                               "ansi-styles": "^4.1.0",
-                               "supports-color": "^7.1.0"
-                       },
-                       "engines": {
-                               "node": ">=10"
-                       },
-                       "funding": {
-                               "url": "https://github.com/chalk/chalk?sponsor=1"
-                       }
-               },
-               "node_modules/jest-util/node_modules/supports-color": {
-                       "version": "7.2.0",
-                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-                       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-                       "dev": true,
-                       "dependencies": {
-                               "has-flag": "^4.0.0"
-                       },
-                       "engines": {
-                               "node": ">=8"
-                       }
-               },
                "node_modules/jest-worker": {
-                       "version": "27.5.1",
-                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
-                       "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+                       "version": "29.6.4",
+                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz",
+                       "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==",
                        "dev": true,
                        "dependencies": {
                                "@types/node": "*",
+                               "jest-util": "^29.6.3",
                                "merge-stream": "^2.0.0",
                                "supports-color": "^8.0.0"
                        },
                        "engines": {
-                               "node": ">= 10.13.0"
+                               "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
                        }
                },
                "node_modules/jju": {
                                "js-yaml": "bin/js-yaml.js"
                        }
                },
+               "node_modules/js2xmlparser": {
+                       "version": "4.0.2",
+                       "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
+                       "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
+                       "dev": true,
+                       "dependencies": {
+                               "xmlcreate": "^2.0.4"
+                       }
+               },
+               "node_modules/jsdoc": {
+                       "version": "4.0.2",
+                       "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz",
+                       "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==",
+                       "dev": true,
+                       "dependencies": {
+                               "@babel/parser": "^7.20.15",
+                               "@jsdoc/salty": "^0.2.1",
+                               "@types/markdown-it": "^12.2.3",
+                               "bluebird": "^3.7.2",
+                               "catharsis": "^0.9.0",
+                               "escape-string-regexp": "^2.0.0",
+                               "js2xmlparser": "^4.0.2",
+                               "klaw": "^3.0.0",
+                               "markdown-it": "^12.3.2",
+                               "markdown-it-anchor": "^8.4.1",
+                               "marked": "^4.0.10",
+                               "mkdirp": "^1.0.4",
+                               "requizzle": "^0.2.3",
+                               "strip-json-comments": "^3.1.0",
+                               "underscore": "~1.13.2"
+                       },
+                       "bin": {
+                               "jsdoc": "jsdoc.js"
+                       },
+                       "engines": {
+                               "node": ">=12.0.0"
+                       }
+               },
                "node_modules/json-buffer": {
                        "version": "3.0.1",
                        "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
                                "node": ">=0.10.0"
                        }
                },
+               "node_modules/klaw": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
+                       "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
+                       "dev": true,
+                       "dependencies": {
+                               "graceful-fs": "^4.1.9"
+                       }
+               },
                "node_modules/kleur": {
                        "version": "4.1.5",
                        "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
                                "node": ">=10"
                        }
                },
+               "node_modules/linkify-it": {
+                       "version": "3.0.3",
+                       "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
+                       "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
+                       "dev": true,
+                       "dependencies": {
+                               "uc.micro": "^1.0.1"
+                       }
+               },
                "node_modules/loader-runner": {
                        "version": "4.3.0",
                        "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
                        "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz",
                        "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA=="
                },
+               "node_modules/markdown-it": {
+                       "version": "12.3.2",
+                       "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
+                       "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
+                       "dev": true,
+                       "dependencies": {
+                               "argparse": "^2.0.1",
+                               "entities": "~2.1.0",
+                               "linkify-it": "^3.0.1",
+                               "mdurl": "^1.0.1",
+                               "uc.micro": "^1.0.5"
+                       },
+                       "bin": {
+                               "markdown-it": "bin/markdown-it.js"
+                       }
+               },
+               "node_modules/markdown-it-anchor": {
+                       "version": "8.6.7",
+                       "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz",
+                       "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==",
+                       "dev": true,
+                       "peerDependencies": {
+                               "@types/markdown-it": "*",
+                               "markdown-it": "*"
+                       }
+               },
+               "node_modules/marked": {
+                       "version": "4.3.0",
+                       "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+                       "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+                       "dev": true,
+                       "bin": {
+                               "marked": "bin/marked.js"
+                       },
+                       "engines": {
+                               "node": ">= 12"
+                       }
+               },
                "node_modules/mdn-data": {
                        "version": "2.0.30",
                        "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
                        "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
                        "dev": true
                },
+               "node_modules/mdurl": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+                       "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
+                       "dev": true
+               },
                "node_modules/merge-stream": {
                        "version": "2.0.0",
                        "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
                                "node": ">=14.14"
                        }
                },
+               "node_modules/npm-check-updates/node_modules/chalk": {
+                       "version": "5.3.0",
+                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+                       "dev": true,
+                       "engines": {
+                               "node": "^12.17.0 || ^14.13 || >=16.0.0"
+                       },
+                       "funding": {
+                               "url": "https://github.com/chalk/chalk?sponsor=1"
+                       }
+               },
                "node_modules/npm-check-updates/node_modules/commander": {
                        "version": "10.0.1",
                        "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
                                "node": ">=14"
                        }
                },
+               "node_modules/npm-check-updates/node_modules/strip-json-comments": {
+                       "version": "5.0.1",
+                       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz",
+                       "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==",
+                       "dev": true,
+                       "engines": {
+                               "node": ">=14.16"
+                       },
+                       "funding": {
+                               "url": "https://github.com/sponsors/sindresorhus"
+                       }
+               },
                "node_modules/npm-install-checks": {
                        "version": "6.2.0",
                        "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.2.0.tgz",
                        }
                },
                "node_modules/postcss": {
-                       "version": "8.4.28",
-                       "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
-                       "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
+                       "version": "8.4.29",
+                       "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
+                       "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
                        "dev": true,
                        "funding": [
                                {
                                "node": ">=0.10.0"
                        }
                },
+               "node_modules/requizzle": {
+                       "version": "0.2.4",
+                       "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
+                       "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
+                       "dev": true,
+                       "dependencies": {
+                               "lodash": "^4.17.21"
+                       }
+               },
                "node_modules/resolve": {
                        "version": "1.22.4",
                        "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
                        }
                },
                "node_modules/strip-json-comments": {
-                       "version": "5.0.1",
-                       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz",
-                       "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==",
+                       "version": "3.1.1",
+                       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+                       "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
                        "dev": true,
                        "engines": {
-                               "node": ">=14.16"
+                               "node": ">=8"
                        },
                        "funding": {
                                "url": "https://github.com/sponsors/sindresorhus"
                        }
                },
                "node_modules/terser": {
-                       "version": "5.19.2",
-                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz",
-                       "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==",
+                       "version": "5.19.3",
+                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz",
+                       "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==",
                        "dev": true,
                        "dependencies": {
                                "@jridgewell/source-map": "^0.3.3",
                        "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
                        "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
                        "dev": true,
-                       "peerDependencies": {
-                               "ajv": "^6.9.1"
+                       "peerDependencies": {
+                               "ajv": "^6.9.1"
+                       }
+               },
+               "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
+                       "version": "27.5.1",
+                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+                       "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+                       "dev": true,
+                       "dependencies": {
+                               "@types/node": "*",
+                               "merge-stream": "^2.0.0",
+                               "supports-color": "^8.0.0"
+                       },
+                       "engines": {
+                               "node": ">= 10.13.0"
                        }
                },
                "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": {
                                "is-typedarray": "^1.0.0"
                        }
                },
+               "node_modules/uc.micro": {
+                       "version": "1.0.6",
+                       "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+                       "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
+                       "dev": true
+               },
+               "node_modules/underscore": {
+                       "version": "1.13.6",
+                       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
+                       "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
+                       "dev": true
+               },
                "node_modules/unique-filename": {
                        "version": "3.0.0",
                        "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
                                "url": "https://github.com/yeoman/update-notifier?sponsor=1"
                        }
                },
+               "node_modules/update-notifier/node_modules/chalk": {
+                       "version": "5.3.0",
+                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+                       "dev": true,
+                       "engines": {
+                               "node": "^12.17.0 || ^14.13 || >=16.0.0"
+                       },
+                       "funding": {
+                               "url": "https://github.com/chalk/chalk?sponsor=1"
+                       }
+               },
                "node_modules/uri-js": {
                        "version": "4.4.1",
                        "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
                                "node": ">=8"
                        }
                },
-               "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
-                       "version": "4.3.0",
-                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-                       "dev": true,
-                       "dependencies": {
-                               "color-convert": "^2.0.1"
-                       },
-                       "engines": {
-                               "node": ">=8"
-                       },
-                       "funding": {
-                               "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-                       }
-               },
                "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
                        "version": "6.0.1",
                        "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
                                "node": ">=8"
                        }
                },
+               "node_modules/wrap-ansi/node_modules/ansi-styles": {
+                       "version": "6.2.1",
+                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+                       "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+                       "dev": true,
+                       "engines": {
+                               "node": ">=12"
+                       },
+                       "funding": {
+                               "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+                       }
+               },
                "node_modules/wrap-ansi/node_modules/emoji-regex": {
                        "version": "9.2.2",
                        "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
                        "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.7.0.tgz",
                        "integrity": "sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw=="
                },
+               "node_modules/xmlcreate": {
+                       "version": "2.0.4",
+                       "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
+                       "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
+                       "dev": true
+               },
                "node_modules/yallist": {
                        "version": "4.0.0",
                        "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
                }
        },
        "dependencies": {
+               "@babel/parser": {
+                       "version": "7.22.13",
+                       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz",
+                       "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==",
+                       "dev": true
+               },
                "@colors/colors": {
                        "version": "1.5.0",
                        "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
                                "@types/node": "*",
                                "@types/yargs": "^17.0.8",
                                "chalk": "^4.0.0"
-                       },
-                       "dependencies": {
-                               "ansi-styles": {
-                                       "version": "4.3.0",
-                                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-                                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-                                       "dev": true,
-                                       "requires": {
-                                               "color-convert": "^2.0.1"
-                                       }
-                               },
-                               "chalk": {
-                                       "version": "4.1.2",
-                                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-                                       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-                                       "dev": true,
-                                       "requires": {
-                                               "ansi-styles": "^4.1.0",
-                                               "supports-color": "^7.1.0"
-                                       }
-                               },
-                               "supports-color": {
-                                       "version": "7.2.0",
-                                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-                                       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-                                       "dev": true,
-                                       "requires": {
-                                               "has-flag": "^4.0.0"
-                                       }
-                               }
                        }
                },
                "@jridgewell/gen-mapping": {
                                "@jridgewell/sourcemap-codec": "^1.4.14"
                        }
                },
+               "@jsdoc/salty": {
+                       "version": "0.2.5",
+                       "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz",
+                       "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==",
+                       "dev": true,
+                       "requires": {
+                               "lodash": "^4.17.21"
+                       }
+               },
                "@mapbox/jsonlint-lines-primitives": {
                        "version": "2.0.2",
                        "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
                        "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
                        "dev": true
                },
+               "@types/linkify-it": {
+                       "version": "3.0.2",
+                       "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
+                       "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
+                       "dev": true
+               },
+               "@types/markdown-it": {
+                       "version": "12.2.3",
+                       "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
+                       "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
+                       "dev": true,
+                       "requires": {
+                               "@types/linkify-it": "*",
+                               "@types/mdurl": "*"
+                       }
+               },
+               "@types/mdurl": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
+                       "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
+                       "dev": true
+               },
                "@types/node": {
                        "version": "20.5.7",
                        "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz",
                        "dev": true
                },
                "ansi-styles": {
-                       "version": "6.2.1",
-                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
-                       "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
-                       "dev": true
+                       "version": "4.3.0",
+                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                       "dev": true,
+                       "requires": {
+                               "color-convert": "^2.0.1"
+                       }
                },
                "aproba": {
                        "version": "2.0.0",
                        "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
                        "dev": true
                },
+               "bluebird": {
+                       "version": "3.7.2",
+                       "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+                       "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+                       "dev": true
+               },
                "boolbase": {
                        "version": "1.0.0",
                        "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
                                "wrap-ansi": "^8.1.0"
                        },
                        "dependencies": {
+                               "chalk": {
+                                       "version": "5.3.0",
+                                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+                                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+                                       "dev": true
+                               },
                                "emoji-regex": {
                                        "version": "9.2.2",
                                        "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
                        "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==",
                        "dev": true
                },
+               "catharsis": {
+                       "version": "0.9.0",
+                       "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
+                       "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
+                       "dev": true,
+                       "requires": {
+                               "lodash": "^4.17.15"
+                       }
+               },
                "chalk": {
-                       "version": "5.3.0",
-                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
-                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
-                       "dev": true
+                       "version": "4.1.2",
+                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+                       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+                       "dev": true,
+                       "requires": {
+                               "ansi-styles": "^4.1.0",
+                               "supports-color": "^7.1.0"
+                       },
+                       "dependencies": {
+                               "supports-color": {
+                                       "version": "7.2.0",
+                                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                                       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                                       "dev": true,
+                                       "requires": {
+                                               "has-flag": "^4.0.0"
+                                       }
+                               }
+                       }
                },
                "chownr": {
                        "version": "2.0.0",
                                "postcss": "^8.4.24",
                                "schema-utils": "^4.0.1",
                                "serialize-javascript": "^6.0.1"
-                       },
-                       "dependencies": {
-                               "jest-worker": {
-                                       "version": "29.6.4",
-                                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz",
-                                       "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==",
-                                       "dev": true,
-                                       "requires": {
-                                               "@types/node": "*",
-                                               "jest-util": "^29.6.3",
-                                               "merge-stream": "^2.0.0",
-                                               "supports-color": "^8.0.0"
-                                       }
-                               }
                        }
                },
                "css-select": {
                        "dev": true
                },
                "electron-to-chromium": {
-                       "version": "1.4.504",
-                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.504.tgz",
-                       "integrity": "sha512-cSMwIAd8yUh54VwitVRVvHK66QqHWE39C3DRj8SWiXitEpVSY3wNPD9y1pxQtLIi4w3UdzF9klLsmuPshz09DQ==",
+                       "version": "1.4.505",
+                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.505.tgz",
+                       "integrity": "sha512-0A50eL5BCCKdxig2SsCXhpuztnB9PfUgRMojj5tMvt8O54lbwz3t6wNgnpiTRosw5QjlJB7ixhVyeg8daLQwSQ==",
                        "dev": true
                },
                "emoji-regex": {
                        }
                },
                "entities": {
-                       "version": "2.2.0",
-                       "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
-                       "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
+                       "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
                        "dev": true
                },
                "env-paths": {
                        "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==",
                        "dev": true
                },
+               "escape-string-regexp": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+                       "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+                       "dev": true
+               },
                "eslint-scope": {
                        "version": "5.1.1",
                        "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
                        "dev": true
                },
                "jackspeak": {
-                       "version": "2.3.0",
-                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.0.tgz",
-                       "integrity": "sha512-uKmsITSsF4rUWQHzqaRUuyAir3fZfW3f202Ee34lz/gZCi970CPZwyQXLGNgWJvvZbvFyzeyGq0+4fcG/mBKZg==",
+                       "version": "2.3.1",
+                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.1.tgz",
+                       "integrity": "sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==",
                        "dev": true,
                        "requires": {
                                "@isaacs/cliui": "^8.0.2",
                                "ci-info": "^3.2.0",
                                "graceful-fs": "^4.2.9",
                                "picomatch": "^2.2.3"
-                       },
-                       "dependencies": {
-                               "ansi-styles": {
-                                       "version": "4.3.0",
-                                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-                                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-                                       "dev": true,
-                                       "requires": {
-                                               "color-convert": "^2.0.1"
-                                       }
-                               },
-                               "chalk": {
-                                       "version": "4.1.2",
-                                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-                                       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-                                       "dev": true,
-                                       "requires": {
-                                               "ansi-styles": "^4.1.0",
-                                               "supports-color": "^7.1.0"
-                                       }
-                               },
-                               "supports-color": {
-                                       "version": "7.2.0",
-                                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-                                       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-                                       "dev": true,
-                                       "requires": {
-                                               "has-flag": "^4.0.0"
-                                       }
-                               }
                        }
                },
                "jest-worker": {
-                       "version": "27.5.1",
-                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
-                       "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+                       "version": "29.6.4",
+                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz",
+                       "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==",
                        "dev": true,
                        "requires": {
                                "@types/node": "*",
+                               "jest-util": "^29.6.3",
                                "merge-stream": "^2.0.0",
                                "supports-color": "^8.0.0"
                        }
                                "argparse": "^2.0.1"
                        }
                },
+               "js2xmlparser": {
+                       "version": "4.0.2",
+                       "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
+                       "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
+                       "dev": true,
+                       "requires": {
+                               "xmlcreate": "^2.0.4"
+                       }
+               },
+               "jsdoc": {
+                       "version": "4.0.2",
+                       "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz",
+                       "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/parser": "^7.20.15",
+                               "@jsdoc/salty": "^0.2.1",
+                               "@types/markdown-it": "^12.2.3",
+                               "bluebird": "^3.7.2",
+                               "catharsis": "^0.9.0",
+                               "escape-string-regexp": "^2.0.0",
+                               "js2xmlparser": "^4.0.2",
+                               "klaw": "^3.0.0",
+                               "markdown-it": "^12.3.2",
+                               "markdown-it-anchor": "^8.4.1",
+                               "marked": "^4.0.10",
+                               "mkdirp": "^1.0.4",
+                               "requizzle": "^0.2.3",
+                               "strip-json-comments": "^3.1.0",
+                               "underscore": "~1.13.2"
+                       }
+               },
                "json-buffer": {
                        "version": "3.0.1",
                        "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
                        "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
                        "dev": true
                },
+               "klaw": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
+                       "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
+                       "dev": true,
+                       "requires": {
+                               "graceful-fs": "^4.1.9"
+                       }
+               },
                "kleur": {
                        "version": "4.1.5",
                        "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
                        "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
                        "dev": true
                },
+               "linkify-it": {
+                       "version": "3.0.3",
+                       "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
+                       "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
+                       "dev": true,
+                       "requires": {
+                               "uc.micro": "^1.0.1"
+                       }
+               },
                "loader-runner": {
                        "version": "4.3.0",
                        "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
                        "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz",
                        "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA=="
                },
+               "markdown-it": {
+                       "version": "12.3.2",
+                       "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
+                       "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
+                       "dev": true,
+                       "requires": {
+                               "argparse": "^2.0.1",
+                               "entities": "~2.1.0",
+                               "linkify-it": "^3.0.1",
+                               "mdurl": "^1.0.1",
+                               "uc.micro": "^1.0.5"
+                       }
+               },
+               "markdown-it-anchor": {
+                       "version": "8.6.7",
+                       "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz",
+                       "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==",
+                       "dev": true,
+                       "requires": {}
+               },
+               "marked": {
+                       "version": "4.3.0",
+                       "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+                       "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+                       "dev": true
+               },
                "mdn-data": {
                        "version": "2.0.30",
                        "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
                        "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
                        "dev": true
                },
+               "mdurl": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+                       "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
+                       "dev": true
+               },
                "merge-stream": {
                        "version": "2.0.0",
                        "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
                                "update-notifier": "^6.0.2"
                        },
                        "dependencies": {
+                               "chalk": {
+                                       "version": "5.3.0",
+                                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+                                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+                                       "dev": true
+                               },
                                "commander": {
                                        "version": "10.0.1",
                                        "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
                                        "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
                                        "dev": true
+                               },
+                               "strip-json-comments": {
+                                       "version": "5.0.1",
+                                       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz",
+                                       "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==",
+                                       "dev": true
                                }
                        }
                },
                        }
                },
                "postcss": {
-                       "version": "8.4.28",
-                       "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
-                       "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
+                       "version": "8.4.29",
+                       "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
+                       "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
                        "dev": true,
                        "requires": {
                                "nanoid": "^3.3.6",
                        "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
                        "dev": true
                },
+               "requizzle": {
+                       "version": "0.2.4",
+                       "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
+                       "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
+                       "dev": true,
+                       "requires": {
+                               "lodash": "^4.17.21"
+                       }
+               },
                "resolve": {
                        "version": "1.22.4",
                        "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
                        }
                },
                "strip-json-comments": {
-                       "version": "5.0.1",
-                       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz",
-                       "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==",
+                       "version": "3.1.1",
+                       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+                       "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
                        "dev": true
                },
                "style-loader": {
                        }
                },
                "terser": {
-                       "version": "5.19.2",
-                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz",
-                       "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==",
+                       "version": "5.19.3",
+                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz",
+                       "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==",
                        "dev": true,
                        "requires": {
                                "@jridgewell/source-map": "^0.3.3",
                                        "dev": true,
                                        "requires": {}
                                },
+                               "jest-worker": {
+                                       "version": "27.5.1",
+                                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+                                       "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "@types/node": "*",
+                                               "merge-stream": "^2.0.0",
+                                               "supports-color": "^8.0.0"
+                                       }
+                               },
                                "json-schema-traverse": {
                                        "version": "0.4.1",
                                        "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
                                "is-typedarray": "^1.0.0"
                        }
                },
+               "uc.micro": {
+                       "version": "1.0.6",
+                       "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+                       "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
+                       "dev": true
+               },
+               "underscore": {
+                       "version": "1.13.6",
+                       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
+                       "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
+                       "dev": true
+               },
                "unique-filename": {
                        "version": "3.0.0",
                        "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
                                "semver": "^7.3.7",
                                "semver-diff": "^4.0.0",
                                "xdg-basedir": "^5.1.0"
+                       },
+                       "dependencies": {
+                               "chalk": {
+                                       "version": "5.3.0",
+                                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+                                       "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+                                       "dev": true
+                               }
                        }
                },
                "uri-js": {
                                "strip-ansi": "^7.0.1"
                        },
                        "dependencies": {
+                               "ansi-styles": {
+                                       "version": "6.2.1",
+                                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+                                       "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+                                       "dev": true
+                               },
                                "emoji-regex": {
                                        "version": "9.2.2",
                                        "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
                                        "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
                                        "dev": true
                                },
-                               "ansi-styles": {
-                                       "version": "4.3.0",
-                                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-                                       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-                                       "dev": true,
-                                       "requires": {
-                                               "color-convert": "^2.0.1"
-                                       }
-                               },
                                "strip-ansi": {
                                        "version": "6.0.1",
                                        "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
                        "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.7.0.tgz",
                        "integrity": "sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw=="
                },
+               "xmlcreate": {
+                       "version": "2.0.4",
+                       "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
+                       "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
+                       "dev": true
+               },
                "yallist": {
                        "version": "4.0.0",
                        "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
index c3cebcff88fd43e37389f2a96743f83957aae273..76cd660c556057f2a636c9d9bef5cd5ccfc2da73 100644 (file)
@@ -14,6 +14,7 @@
                "css-loader": "^6.8.1",
                "css-minimizer-webpack-plugin": "^5.0.1",
                "html-webpack-plugin": "^5.5.3",
+               "jsdoc": "^4.0.2",
                "mini-css-extract-plugin": "^2.7.6",
                "npm-check-updates": "^16.13.2",
                "style-loader": "^3.3.3",
index fa4ba5cbed9e8969802f7a73fc01b59e279af5b0..1a3dd2eb8818ed2672fe0cff91b285b887ca38f0 100644 (file)
@@ -1,9 +1,16 @@
+/** API to be used by Java.
+ *  @module MapPart
+ */
+
+/** Abstract base class for displaying a map. */
 export default class MapPart {
 
+       /** Zoom the map to the given value. */
        setZoom(zoom) {
                throw new Error("Abstract method");
        }
 
+       /** Set the center of the map to the given coordinates. */
        setCenter(lng, lat) {
                throw new Error("Abstract method");
        }
index df7dd969aec4739b3cd555be40945847321ddbc8..6284296f87492760383f0f614f5cb5b6afde7135 100644 (file)
@@ -1,3 +1,7 @@
+/** OpenLayers-based implementation. 
+ * @module OpenLayersMapPart
+ */
+
 import Map from 'ol/Map.js';
 import OSM from 'ol/source/OSM.js';
 import TileLayer from 'ol/layer/Tile.js';
@@ -6,7 +10,9 @@ import { fromLonLat, toLonLat } from 'ol/proj.js';
 
 import MapPart from './MapPart.js';
 
+/** OpenLayers implementation of MapPart. */
 export default class OpenLayersMapPart extends MapPart {
+       /** The OpenLayers Map. */
        #map;
        // Constructor
        constructor() {
index 8d68d89f6be4303d9f2b8c3f99df510a2be9a712..c322c28111f71bd59d7dfcfddb7f06e7e2b788ec 100644 (file)
@@ -8,5 +8,7 @@ if (typeof globalThis.argeo.app === 'undefined')
 if (typeof globalThis.argeo.app.geo === 'undefined')
        globalThis.argeo.app.geo = {};
 
-
+// PUBLIC CLASSES
 globalThis.argeo.app.geo.OpenLayersMapPart = OpenLayersMapPart;
+
+"use strict";
index 1821cc9fa2d0d831ff381f343c79cad36ea0a225..4213dc5bae3d85783893cd43612294fcd8a1656b 100644 (file)
@@ -43,6 +43,7 @@ module.exports = {
                new HtmlWebpackPlugin({
                        title: 'Open Layers',
                        template: 'src/org.argeo.app.geo.js/index.html',
+                       scriptLoading: 'module',
                }),
 
        ],