diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fcf43e3..b107ec5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,11 +3,11 @@ name: test on: push: branches: [main] - paths: ['src/**/*.js', 'tests/**/*.js'] + paths: ['src/**', 'tests/**'] pull_request: branches: [main] - paths: ['src/**/*.js', 'tests/**/*.js'] + paths: ['src/**', 'tests/**'] jobs: test: diff --git a/package-lock.json b/package-lock.json index 49d2272..de2ebac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,8 @@ "lint-staged": "^15.2.8", "markdownlint-cli": "^0.41.0", "mocha": "^10.7.3", - "prettier": "^3.3.3" + "prettier": "^3.3.3", + "textlint-tester": "^14.0.5" }, "peerDependencies": { "textlint": "^14.0.4" @@ -2424,31 +2425,28 @@ } }, "node_modules/@textlint/ast-node-types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", - "license": "MIT", - "peer": true + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", + "license": "MIT" }, "node_modules/@textlint/ast-tester": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.4.tgz", - "integrity": "sha512-SQ/2DjxVlDVeCEjVlD8c8R2Sl3VGDZEx8o9+i8bV8NUdY8qsSHbo29/BfiUZf/uaX6eeNpZsurtstJ25hbVrsQ==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.5.tgz", + "integrity": "sha512-fXIffKbOXwULZwMib9BtGf+IkARXs/CnEmFhAGwLhzPjLTB9YgNftjTyxmVvNbpKA02KTMdK3JFpgZ5Vyxsykg==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4", + "@textlint/ast-node-types": "^14.0.5", "debug": "^4.3.4" } }, "node_modules/@textlint/ast-traverse": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.4.tgz", - "integrity": "sha512-bzFC7UJ2FvhjH5ekXGQ0i9vjK+xzMT69gHBsYVEl+TtbplnH2YY3+sbw6B1j3LocJuo6xngZ2YWXXqmQlKgzLg==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.5.tgz", + "integrity": "sha512-5q/7vifbG8mqDEpByaUjAfHHjJlFiS737axziNQ8qXVswyrMdmRIRE9Wv0unvrs0W9mLKHcsPHh8JQd1RGpfIg==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4" + "@textlint/ast-node-types": "^14.0.5" } }, "node_modules/@textlint/config-loader": { @@ -2468,11 +2466,10 @@ } }, "node_modules/@textlint/feature-flag": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.4.tgz", - "integrity": "sha512-1FMZqnjOA4KVpt/aloI1fNs46P0rUeHWcCRKl33/08wRHHMdcbaN4EsHkq7UfriuSfFgUuiyeo0bPjCpv15hhQ==", - "license": "MIT", - "peer": true + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.5.tgz", + "integrity": "sha512-hTlCE+cyJ6BxsXgDJfe/mF/b/GVKrPUMzgqbd6n5bbGuhdTYO0hDrl/nCAbasQz4oJh6TGq4WH2dNts38TlZng==", + "license": "MIT" }, "node_modules/@textlint/fixer-formatter": { "version": "14.0.4", @@ -2581,19 +2578,18 @@ } }, "node_modules/@textlint/kernel": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.4.tgz", - "integrity": "sha512-6WNoEBZ4lYTYOGK4EEEdjp+kgxSSC1nIFwN6tY9XGVkd4OACzDNothVTvJBwaX73FWFG5zoSjnNQxBDPUHMc8g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@textlint/ast-node-types": "^14.0.4", - "@textlint/ast-tester": "^14.0.4", - "@textlint/ast-traverse": "^14.0.4", - "@textlint/feature-flag": "^14.0.4", - "@textlint/source-code-fixer": "^14.0.4", - "@textlint/types": "^14.0.4", - "@textlint/utils": "^14.0.4", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.5.tgz", + "integrity": "sha512-AfCGRSq4XuH1UCAcKKurbBRxxypTJzdWmG3Netpa/cGmkdI4tcL+kfaimG3hSnXvQfv6VIzHASBB6u2WpUAGXg==", + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.0.5", + "@textlint/ast-tester": "^14.0.5", + "@textlint/ast-traverse": "^14.0.5", + "@textlint/feature-flag": "^14.0.5", + "@textlint/source-code-fixer": "^14.0.5", + "@textlint/types": "^14.0.5", + "@textlint/utils": "^14.0.5", "debug": "^4.3.4", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" @@ -2735,20 +2731,19 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.4.tgz", - "integrity": "sha512-D9UUxnRJoNROVjOa9bhoQPDdRvlvS/xP3MJo0Kl6b/mJFi0dOlW31WUfpOFjZkp4uXkL+oo0ji7AMnmV6JORsQ==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.5.tgz", + "integrity": "sha512-m6EIJL/qhvGuB5zXCQNHBF8MdhPpN4s2F2WPxfwFunXb/K58murSEkUTCviuHiDG/7XOFT030dY9eck3Pez0gg==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4", + "@textlint/ast-node-types": "^14.0.5", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", + "neotraverse": "^0.6.15", "remark-footnotes": "^3.0.0", "remark-frontmatter": "^3.0.0", "remark-gfm": "^1.0.0", "remark-parse": "^9.0.0", - "traverse": "^0.6.8", "unified": "^9.2.2" } }, @@ -2760,62 +2755,56 @@ "peer": true }, "node_modules/@textlint/source-code-fixer": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.4.tgz", - "integrity": "sha512-gIUeWjF0WdSwgCUhW310hKJsWOyRyFe6PGaqqCk7Mhc+vVcePfmC8mmmhVgeuyys/Dhe+0iaP4M1eJf4COaIQw==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.5.tgz", + "integrity": "sha512-JNSBVFQ09LXxeiebQ4PI72N1XTW/CZb3gVewnojL/un39oAo3yGjzFox/59TL5rdrGAqsijOq4CrWkJ+3Xb2kg==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/types": "^14.0.4", + "@textlint/types": "^14.0.5", "debug": "^4.3.4" } }, "node_modules/@textlint/text-to-ast": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.4.tgz", - "integrity": "sha512-r2KSnKzhsCIvX72yX+7sEuu9nDQIS4+xRsSffuXYB0etRQUI6VTTsE6Ibd6yMbEsMDUF4BfKWzNGn+bQ8U7oHA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.5.tgz", + "integrity": "sha512-3dq1OL6gU522H+/b+NmE4z8OXMG5aLgKAlBu1zBbcXGAjgtIEdplYn6XGvpkGRM2FnypMzsDIUjzwUS8bjbpWw==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4" + "@textlint/ast-node-types": "^14.0.5" } }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.4.tgz", - "integrity": "sha512-mqQieI9U5GTRTjkK4Cj57Axl6fVloaA8g0+sCsp3TjmNWyEgGBvt3aw+FIUiFTvheg9L3RGe/aXgvp5ORADOAA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.5.tgz", + "integrity": "sha512-QjfATGYKuPkLVT+GsG8WjwrkgNpksKED6Qd4TDL/q2LwNVEZ6ULFLZmufL9z9ENCeBs6y0YDE7IbE26Vhq5zww==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/markdown-to-ast": "^14.0.4" + "@textlint/markdown-to-ast": "^14.0.5" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.4.tgz", - "integrity": "sha512-HwTQyOcwDRrPPHyD8lwSMyGR1ETasR2WK6BLO0PRbowRe6K/K4b9OBBd6+nJcRFa+9Nd6p7nxPzA2WxDi1X/Zg==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.5.tgz", + "integrity": "sha512-OJJP5WXo3rqqL7bXYy44f8z9s1Ssb/2/nmTStbTepSOujQjOoEwehtwV+QBwdzwRkzbQFcZ0HS+dJ/yNdneKWA==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/text-to-ast": "^14.0.4" + "@textlint/text-to-ast": "^14.0.5" } }, "node_modules/@textlint/types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.0.4.tgz", - "integrity": "sha512-SNdFG/GB6utYeHmNfoAMlI+K1NykPxK9TtilkEfhr/fF9TqmeeJ+6CMk5NLQzEvfKm6jUbv2pp5DPS27vo6GKg==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.0.5.tgz", + "integrity": "sha512-scrY5Zzz/SSAXaxw6OspbgFuiyQpHq88iK7OhUYE3BMnM90ijKzSohGMUHHK872zenzGTTOepE2sdjkIyXr1pA==", "license": "MIT", - "peer": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4" + "@textlint/ast-node-types": "^14.0.5" } }, "node_modules/@textlint/utils": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.4.tgz", - "integrity": "sha512-/ThtVZCB/vB2e8+MnKquCFNO2cKXCPEGxFlkdvJ5g9q9ODpVyFcf2ogYoIlvR7cNotvq67zVjENS7dsGDNFEmw==", - "license": "MIT", - "peer": true + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.5.tgz", + "integrity": "sha512-+EDQlPx4t/DcH4EYXB62J+5mTRdJaMlFEyzCK7QUfZ9u2JeIE+AFt4D7xDAeiXcdxYTAm2ASdJ+lw7z3Z+vasQ==", + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -2829,7 +2818,6 @@ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2" } @@ -2838,8 +2826,7 @@ "version": "2.0.10", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", @@ -2963,6 +2950,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -3059,6 +3047,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -3097,6 +3086,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" @@ -3176,7 +3166,6 @@ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3211,8 +3200,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/brace-expansion": { "version": "2.0.1", @@ -3281,6 +3269,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -3345,7 +3334,6 @@ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3369,7 +3357,6 @@ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3380,7 +3367,6 @@ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3391,7 +3377,6 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3953,6 +3938,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -3970,6 +3956,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -3987,6 +3974,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -4067,6 +4055,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -4084,6 +4073,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", @@ -4274,6 +4264,7 @@ "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -4334,6 +4325,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" @@ -4346,6 +4338,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4355,6 +4348,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -4367,6 +4361,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4", @@ -4391,6 +4386,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.4", @@ -5120,8 +5116,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -5140,8 +5135,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", @@ -5178,7 +5172,6 @@ "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "license": "MIT", - "peer": true, "dependencies": { "format": "^0.2.0" }, @@ -5282,6 +5275,7 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.3" @@ -5322,7 +5316,6 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "peer": true, "engines": { "node": ">=0.4.x" } @@ -5368,6 +5361,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -5386,6 +5380,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5428,6 +5423,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5473,6 +5469,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -5534,6 +5531,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, "license": "MIT", "dependencies": { "define-properties": "^1.2.1", @@ -5550,6 +5548,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" @@ -5576,6 +5575,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5594,6 +5594,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -5606,6 +5607,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5618,6 +5620,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5630,6 +5633,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -5795,6 +5799,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5810,7 +5815,6 @@ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5821,7 +5825,6 @@ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "license": "MIT", - "peer": true, "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" @@ -5835,6 +5838,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -5858,6 +5862,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" @@ -5883,6 +5888,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -5906,6 +5912,7 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5933,6 +5940,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, "license": "MIT", "dependencies": { "is-typed-array": "^1.1.13" @@ -5948,6 +5956,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -5964,7 +5973,6 @@ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6011,7 +6019,6 @@ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6021,6 +6028,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6043,6 +6051,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -6077,6 +6086,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -6093,6 +6103,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7" @@ -6121,6 +6132,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -6136,6 +6148,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" @@ -6151,6 +6164,7 @@ "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" @@ -6186,6 +6200,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2" @@ -6198,6 +6213,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, "license": "MIT" }, "node_modules/isexe": { @@ -6570,7 +6586,6 @@ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6630,7 +6645,6 @@ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", "license": "MIT", - "peer": true, "dependencies": { "repeat-string": "^1.0.0" }, @@ -6712,7 +6726,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", "license": "MIT", - "peer": true, "dependencies": { "escape-string-regexp": "^4.0.0", "unist-util-is": "^4.0.0", @@ -6728,7 +6741,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz", "integrity": "sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-to-markdown": "^0.6.0", "micromark": "~2.11.0" @@ -6743,7 +6755,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^2.0.0", @@ -6761,7 +6772,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz", "integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==", "license": "MIT", - "peer": true, "dependencies": { "micromark-extension-frontmatter": "^0.2.0" }, @@ -6775,7 +6785,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-gfm-autolink-literal": "^0.1.0", "mdast-util-gfm-strikethrough": "^0.2.0", @@ -6793,7 +6802,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", "license": "MIT", - "peer": true, "dependencies": { "ccount": "^1.0.0", "mdast-util-find-and-replace": "^1.1.0", @@ -6809,7 +6817,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-to-markdown": "^0.6.0" }, @@ -6823,7 +6830,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", "license": "MIT", - "peer": true, "dependencies": { "markdown-table": "^2.0.0", "mdast-util-to-markdown": "~0.6.0" @@ -6838,7 +6844,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-to-markdown": "~0.6.0" }, @@ -6852,7 +6857,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "longest-streak": "^2.0.0", @@ -6871,7 +6875,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -6906,7 +6909,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "debug": "^4.0.0", "parse-entities": "^2.0.0" @@ -6917,7 +6919,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz", "integrity": "sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ==", "license": "MIT", - "peer": true, "dependencies": { "micromark": "~2.11.0" }, @@ -6931,7 +6932,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz", "integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==", "license": "MIT", - "peer": true, "dependencies": { "fault": "^1.0.0" }, @@ -6945,7 +6945,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", "license": "MIT", - "peer": true, "dependencies": { "micromark": "~2.11.0", "micromark-extension-gfm-autolink-literal": "~0.5.0", @@ -6964,7 +6963,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", "license": "MIT", - "peer": true, "dependencies": { "micromark": "~2.11.3" }, @@ -6978,7 +6976,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", "license": "MIT", - "peer": true, "dependencies": { "micromark": "~2.11.0" }, @@ -6992,7 +6989,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", "license": "MIT", - "peer": true, "dependencies": { "micromark": "~2.11.0" }, @@ -7006,7 +7002,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -7017,7 +7012,6 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", "license": "MIT", - "peer": true, "dependencies": { "micromark": "~2.11.0" }, @@ -7316,6 +7310,15 @@ "dev": true, "license": "MIT" }, + "node_modules/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -7391,6 +7394,7 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -7403,6 +7407,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -7412,6 +7417,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -7596,7 +7602,6 @@ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "license": "MIT", - "peer": true, "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", @@ -7811,6 +7816,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -8085,6 +8091,7 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -8144,7 +8151,6 @@ "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-3.0.0.tgz", "integrity": "sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-footnote": "^0.1.0", "micromark-extension-footnote": "^0.3.0" @@ -8159,7 +8165,6 @@ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", "integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-frontmatter": "^0.2.0", "micromark-extension-frontmatter": "^0.2.0" @@ -8174,7 +8179,6 @@ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-gfm": "^0.1.0", "micromark-extension-gfm": "^0.3.0" @@ -8189,7 +8193,6 @@ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", "license": "MIT", - "peer": true, "dependencies": { "mdast-util-from-markdown": "^0.8.0" }, @@ -8203,7 +8206,6 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10" } @@ -8420,6 +8422,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -8459,6 +8462,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -8501,6 +8505,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -8518,6 +8523,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -8566,6 +8572,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -8767,6 +8774,7 @@ "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -8785,6 +8793,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -8799,6 +8808,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -8896,7 +8906,6 @@ "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", "license": "BSD-2-Clause", - "peer": true, "dependencies": { "boundary": "^2.0.0" } @@ -9095,6 +9104,19 @@ "node": ">=18.14.0" } }, + "node_modules/textlint-tester": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/textlint-tester/-/textlint-tester-14.0.5.tgz", + "integrity": "sha512-0tN8PWcPKTZikJCkxz4ee3qjifM3BZLQCgE36FTaPsI2JkyayVmLrEjFJ8DcSKE1ej5HiyTh1c2J/41nrTn3Lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/feature-flag": "^14.0.5", + "@textlint/kernel": "^14.0.5", + "@textlint/textlint-plugin-markdown": "^14.0.5", + "@textlint/textlint-plugin-text": "^14.0.5" + } + }, "node_modules/textlint/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -9174,24 +9196,6 @@ "node": ">=8.0" } }, - "node_modules/traverse": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz", - "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==", - "license": "MIT", - "peer": true, - "dependencies": { - "gopd": "^1.0.1", - "typedarray.prototype.slice": "^1.0.3", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -9207,7 +9211,6 @@ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9293,6 +9296,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -9307,6 +9311,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -9326,6 +9331,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -9346,6 +9352,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -9362,27 +9369,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", - "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-errors": "^1.3.0", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-offset": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -9394,6 +9380,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -9463,7 +9450,6 @@ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "license": "MIT", - "peer": true, "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -9496,7 +9482,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -9513,7 +9498,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -9524,7 +9508,6 @@ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.2" }, @@ -9538,7 +9521,6 @@ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" @@ -9605,7 +9587,6 @@ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -9622,7 +9603,6 @@ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" @@ -9651,7 +9631,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -9697,6 +9676,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", @@ -9713,6 +9693,7 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -10019,7 +10000,6 @@ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/package.json b/package.json index 60395db..a444632 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "prepublishOnly": "npm run build", "build": "npx babel src -d build", "test": "concurrently \"npm:test-*\"", + "test-tests": "npx mocha ./tests --inline-diffs true", "test-utils": "npx mocha ./tests/utils --inline-diffs true", "lint": "concurrently \"npm:lint-*\"", "lint-eslint": "npx eslint . --ext .js", @@ -40,7 +41,10 @@ "lint-markdownlint": "npx markdownlint **/*.md", "fix": "concurrently \"npm:fix-*\"", "fix-eslint": "npx eslint . --fix --ext .js", - "fix-prettier": "npx prettier . --write" + "fix-prettier": "npx prettier . --write", + "textlint-pretty": "npx textlint tests/textlint-rule-allowed-uris.data.md --rulesdir ./src -f pretty-error", + "textlint-stylish": "npx textlint tests/textlint-rule-allowed-uris.data.md --rulesdir ./src -f stylish", + "textlint-json": "npx textlint tests/textlint-rule-allowed-uris.data.md --rulesdir ./src -f json" }, "peerDependencies": { "textlint": "^14.0.4" @@ -60,7 +64,8 @@ "lint-staged": "^15.2.8", "markdownlint-cli": "^0.41.0", "mocha": "^10.7.3", - "prettier": "^3.3.3" + "prettier": "^3.3.3", + "textlint-tester": "^14.0.5" }, "dependencies": { "ansi-colors": "^4.1.3", @@ -75,7 +80,8 @@ ], "*.js": "npx eslint", "*.md": "npx markdownlint", - "{src,tests}/**/*.js": [ + "{src,tests}/**": [ + "npm run test-tests", "npm run test-utils" ] } diff --git a/src/index.js b/src/index.js deleted file mode 100644 index 70b786d..0000000 --- a/src/index.js +++ /dev/null @@ -1 +0,0 @@ -// TODO diff --git a/src/textlint-rule-allowed-uris.js b/src/textlint-rule-allowed-uris.js new file mode 100644 index 0000000..b354ad3 --- /dev/null +++ b/src/textlint-rule-allowed-uris.js @@ -0,0 +1,72 @@ +const c = require('ansi-colors'); +const getUriList = require('./utils/getUriList'); + +/** + * The main reporter function that processes the node and reports any issues based on the specified options. + * + * @async + * @param {Object} context The context object containing the `report`, `locator`, and `RuleError`. + * @param {function} context.report Function to report errors or issues. + * @param {function} context.locator Function to locate the position of the node in the source. + * @param {function} context.RuleError Constructor to create a new rule error. + * @param {Object} options Configuration options containing `allowed` and `disallowed` URI patterns. + * @param {Object} [options.allowed] Object specifying `allowed` URI patterns. + * @param {RegExp[]} [options.allowed.links] Array of regular expressions for allowed links URIs. + * @param {RegExp[]} [options.allowed.images] Array of regular expressions for allowed images URIs. + * @param {Object} [options.disallowed] Object specifying `disallowed` URI patterns. + * @param {RegExp[]} [options.disallowed.links] Array of regular expressions for disallowed links URIs. + * @param {RegExp[]} [options.disallowed.images] Array of regular expressions for disallowed images URIs. + * @param {Object} node The node to be processed, containing potential URIs. + * @returns {Promise} A `Promise` that resolves when the reporting is completed. + */ +const reporter = async ({ report, locator, RuleError }, options, node) => { + /* Initialize options */ + const regexes = { + allowed: { + links: options?.allowed?.links ?? [/.*/], + images: options?.allowed?.images ?? [/.*/], + }, + disallowed: { + links: options?.disallowed?.links ?? [], + images: options?.disallowed?.images ?? [], + }, + }; + + /* Report process */ + (await getUriList(node)).uriList.forEach(({ uri, type }) => { + Object.keys(regexes).forEach(key => { + if ( + key === 'allowed' + ? !regexes[key][`${type}s`].some(regex => regex.test(uri)) + : regexes[key][`${type}s`].some(regex => regex.test(uri)) + ) + report( + node, + new RuleError( + `${c.red.bold(`${key}.${type}s`)}\n${c.bold.red('-')} problem: '${c.strikethrough.bold.white(uri)}'\n${c.bold.red('-')} ${key} regular expressions: '${c.bold.white(regexes[key][`${type}s`].join(' or '))}'`, + { + padding: locator.at(0), + }, + ), + ); + }); + }); +}; + +/** + * The module export function that returns an object mapping node types to the `reporter` function. + * + * @param {Object} context The context object provided to the `reporter`. + * @param {Object} options Configuration options for the `reporter`. + * @returns {Object} An object with node type keys mapping to the `reporter` function. + */ +module.exports = (context, options) => { + // TODO: Error When it is offline. + + return Object.fromEntries( + ['Link', 'Image', 'Definition', 'Html'].map(type => [ + type, + async node => reporter(context, options, node), + ]), + ); +}; diff --git a/src/utils/getDefinitionNodeUriType.js b/src/utils/getDefinitionNodeUriType.js index c51d0da..5b51ac4 100644 --- a/src/utils/getDefinitionNodeUriType.js +++ b/src/utils/getDefinitionNodeUriType.js @@ -5,7 +5,7 @@ const axios = require('axios'); /** * Retrieves the MIME type of a given URI. * - * @private + * @async * @param {string} uri The URI to check. It can be a remote or local URI. * @returns {Promise} A promise that resolves to the MIME type of the URI. Defaults to `application/octet-stream` if the MIME type can't be determined. */ @@ -22,7 +22,7 @@ const getMimeType = async uri => { /** * Retrieves the type of a given URI. * - * @public + * @async * @param {string} uri The URI to check. It can be a remote or local URI. * @returns {Promise} A promise that resolves to `'comment'` for empty(` `) or hash-only(`#`) URIs, `'image'` if the URI's MIME type is an image, and `'link'` for other types of URIs. */ diff --git a/src/utils/getUriList.js b/src/utils/getUriList.js index 54fef2d..920de09 100644 --- a/src/utils/getUriList.js +++ b/src/utils/getUriList.js @@ -23,6 +23,7 @@ const getUriListImage = node => new UriList().push(node.url, 'image'); /** * Retrieves URI from a given `Definition` node and returns an instance of `UriList`. * + * @async * @param {Object} node `Definition` type node. * @param {string} node.url The URI of the node. * @returns {Promise} A `Promise` that resolves to an instance of `UriList` containing the URI if it is of type `'link'` or `'image'`, otherwise resolves to an empty `UriList`. @@ -59,6 +60,7 @@ const getUriListHtml = node => { /** * Retrieves the URI and creates an instance of `UriList` from a given `node`. * + * @async * @param {Object} node The node from which to retrieve the URI. * @param {string} node.type The type of the node, which should be `Link`, `Image`, `Definition`, or `Html`. * @returns {Promise} A `Promise` that resolves to an instance of `UriList` retrieved from the `node`. diff --git a/tests/textlint-rule-allowed-uris.data.js b/tests/textlint-rule-allowed-uris.data.js new file mode 100644 index 0000000..bbc9465 --- /dev/null +++ b/tests/textlint-rule-allowed-uris.data.js @@ -0,0 +1,279 @@ +/** + * `testCases` for `textlint-rule-allowed-uris.spec.js` + */ +module.exports = [ + /* Totally empty */ + { + options: { + // allowed: { + // links: [], + // images: [], + // }, + // disallowed: { + // links: [], + // images: [], + // }, + }, + lines: [], + }, + { + options: { + allowed: { + // links: [], + // images: [], + }, + // disallowed: { + // links: [], + // images: [], + // }, + }, + lines: [], + }, + { + options: { + // allowed: { + // links: [], + // images: [], + // }, + disallowed: { + // links: [], + // images: [], + }, + }, + lines: [], + }, + { + options: { + allowed: { + // links: [], + // images: [], + }, + disallowed: { + // links: [], + // images: [], + }, + }, + lines: [], + }, + + /* Pass empty array */ + { + options: { + allowed: { + links: [], // Act like an whitelist. i.e. Empty array allows nothing. Every `links` will be detected. + // images: [], + }, + disallowed: { + // links: [], + // images: [], + }, + }, + lines: [7, 9, 13, 15, 19, 21, 23, 25, 31, 37, 43, 47, 86, 101, 103, 105], + }, + { + options: { + allowed: { + // links: [], + images: [], // Act like an whitelist. i.e. Empty array allows nothing. Every `images` will be detected. + }, + disallowed: { + // links: [], + // images: [], + }, + }, + lines: [53, 59, 65, 71, 75, 77, 79, 86, 105], + }, + { + options: { + allowed: { + links: [], // Act like an whitelist. i.e. Empty array allows nothing. Every `links` will be detected. + images: [], // Act like an whitelist. i.e. Empty array allows nothing. Every `images` will be detected. + }, + disallowed: { + // links: [], + // images: [], + }, + }, + lines: [ + 7, 9, 13, 15, 19, 21, 23, 25, 31, 37, 43, 47, 53, 59, 65, 71, 75, 77, 79, 86, 86, + 101, 103, 105, 105, + ], // `86` and `105` are same line number, but detected twice. one for `links` and the other for `images` + }, + { + options: { + allowed: { + // links: [], + // images: [], + }, + disallowed: { + links: [], // Act like a blacklist. i.e. Empty array allows everything. No `links` will be detected. + // images: [], + }, + }, + lines: [], + }, + { + options: { + allowed: { + // links: [], + // images: [], + }, + disallowed: { + // links: [], + images: [], // Act like a blacklist. i.e. Empty array allows everything. No `images` will be detected. + }, + }, + lines: [], + }, + { + options: { + allowed: { + // links: [], + // images: [], + }, + disallowed: { + links: [], // Act like a blacklist. i.e. Empty array allows everything. No `images` will be detected. + images: [], // Act like a blacklist. i.e. Empty array allows everything. No `images` will be detected. + }, + }, + lines: [], + }, + + /* Pass values */ + // `allowed.links` + { + options: { + allowed: { + links: [/google/], + // images: [], + }, + // disallowed: { + // links: [], + // images: [], + // }, + }, + lines: [9, 15, 21, 23, 25, 86, 101, 103], + }, + { + options: { + allowed: { + links: [/google/, /gmail/], + // images: [], + }, + // disallowed: { + // links: [], + // images: [], + // }, + }, + lines: [21, 23, 25, 86, 101, 103], + }, + { + options: { + allowed: { + links: [/google/, /gmail/, /README.md/], + // images: [], + }, + // disallowed: { + // links: [], + // images: [], + // }, + }, + lines: [21, 23, 86, 103], + }, + // `allowed.images` + { + options: { + allowed: { + // links: [], + images: [/wiki/], + }, + // disallowed: { + // links: [], + // images: [], + // }, + }, + lines: [], + }, + // `disallowed.links` + { + options: { + // allowed: { + // links: [], + // images: [], + // }, + disallowed: { + links: [/google/], + // images: [], + }, + }, + lines: [7, 13, 19, 31, 37, 43, 47, 105], + }, + { + options: { + // allowed: { + // links: [], + // images: [], + // }, + disallowed: { + links: [/google/, /gmail/], + // images: [], + }, + }, + lines: [7, 9, 13, 15, 19, 31, 37, 43, 47, 105], + }, + { + options: { + // allowed: { + // links: [], + // images: [], + // }, + disallowed: { + links: [/google/, /gmail/, /README.md/], + // images: [], + }, + }, + lines: [7, 9, 13, 15, 19, 25, 31, 37, 43, 47, 101, 105], + }, + // `disallowed.images` + { + options: { + // allowed: { + // links: [], + // images: [], + // }, + disallowed: { + // links: [], + images: [/wiki/], + }, + }, + lines: [53, 59, 65, 71, 75, 77, 79, 86, 105], + }, + + /* Pass same values to `allowed` and `disallowed` */ + { + options: { + allowed: { + links: [/google/], + // images: [], + }, + disallowed: { + links: [/google/], + // images: [], + }, + }, + lines: [7, 9, 13, 15, 19, 21, 23, 25, 31, 37, 43, 47, 86, 101, 103, 105], // Every `links` will be detected. + }, + { + options: { + allowed: { + // links: [], + images: [/wiki/], + }, + disallowed: { + // links: [], + images: [/wiki/], + }, + }, + lines: [53, 59, 65, 71, 75, 77, 79, 86, 105], // Every `images` will be detected. + }, +]; diff --git a/tests/textlint-rule-allowed-uris.data.md b/tests/textlint-rule-allowed-uris.data.md new file mode 100644 index 0000000..3a96a4c --- /dev/null +++ b/tests/textlint-rule-allowed-uris.data.md @@ -0,0 +1,109 @@ + + +## Links + + + +https://www.google.com + +example@gmail.com + + + + + + + + + +[google](https://www.google.com "Hello Google") + +[google]() + +[title](#heading) + +[README.md](../README.md) + + + +[google][link1] + +[link1]: https://www.google.com "Hello Google" + + + +[link2][] + +[link2]: https://www.google.com "Hello Google" + + + +[link3] + +[link3]: https://www.google.com "Hello Google" + + + +google + +## Images + + + +![example](https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg "Example Image") + + + +![example][image1] + +[image1]: https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg "Example Image" + + + +![image2][] + +[image2]: https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg "Example Image" + + + +![image3] + +[image3]: https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg "Example Image" + + + + + +
+ +
+ + +
+ +## Image with a link + +[![example](https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg "Example Image")](https://en.wikipedia.org/wiki/File:Example.jpg) + +## Comments + +[//]: # (This behaves like a comment) +[//]: # "This behaves like a comment" +[//]: # 'This behaves like a comment' +[comment]: <> (This behaves like a comment) +[comment]: <> "This behaves like a comment" +[comment]: <> 'This behaves like a comment' + +## Others + +[linkLocal1] + +[linkLocal1]: /README.md "Hello README" + +[neverUsed]: /LICENSE "neverUsed" + +
+
+ google
+
+
diff --git a/tests/textlint-rule-allowed-uris.spec.js b/tests/textlint-rule-allowed-uris.spec.js new file mode 100644 index 0000000..b4014b8 --- /dev/null +++ b/tests/textlint-rule-allowed-uris.spec.js @@ -0,0 +1,50 @@ +const fs = require('fs'); +const path = require('path'); +const TextLintTester = require('textlint-tester').default; +const allowedUris = require('../src/textlint-rule-allowed-uris'); +const testCases = require('./textlint-rule-allowed-uris.data'); + +const tester = new TextLintTester(); +const testCasesMarkdown = fs.readFileSync( + path.resolve(__dirname, 'textlint-rule-allowed-uris.data.md'), + 'utf-8', +); + +/** + * Tests for the `textlint-rule-allowed-uris.js` + */ +describe('textlint-rule-allowed-uris', () => { + testCases.forEach(({ options, lines }) => { + /* Initialization */ + const testConfig = { + rules: [ + { + ruleId: 'textlint-rule-allowed-uris', + rule: allowedUris, + options, + }, + ], + }; + const invalid = [ + { + text: testCasesMarkdown, + errors: lines.map(line => ({ line })), + }, + ]; + + /* Test */ + tester.run( + ` + allowed links: ${options?.allowed?.links?.join(' or ')} + allowed images: ${options?.allowed?.images?.join(' or ')} + disallowed links: ${options?.disallowed?.links?.join(' or ')} + disallowed images: ${options?.disallowed?.links?.join(' or ')} + lines: ${lines.join(', ')} + `, + testConfig, + { + invalid, + }, + ); + }); +}); diff --git a/tests/utils/getDefinitionNodeUriType.spec.js b/tests/utils/getDefinitionNodeUriType.spec.js index 9164388..bbb55e9 100644 --- a/tests/utils/getDefinitionNodeUriType.spec.js +++ b/tests/utils/getDefinitionNodeUriType.spec.js @@ -3,7 +3,7 @@ const testCases = require('./getDefinitionNodeUriType.data'); const getDefinitionNodeUriType = require('../../src/utils/getDefinitionNodeUriType'); /** - * Test for the `getDefinitionNodeUriType.js` + * Tests for the `getDefinitionNodeUriType.js` */ describe('Util getDefinitionNodeUriType strictEqual testing', () => { testCases.forEach(testCase => {