From d36a5603f955eb6f1cf9a80c3e075a2bdbf89c8b Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 25 Jan 2023 15:15:35 -1000 Subject: [PATCH 01/19] Add Sena UD100 Bluetooth CSR adapter (#25951) --- source/_integrations/bluetooth.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/bluetooth.markdown b/source/_integrations/bluetooth.markdown index 6a050f02915..4f88f797e4b 100644 --- a/source/_integrations/bluetooth.markdown +++ b/source/_integrations/bluetooth.markdown @@ -92,6 +92,7 @@ If you experience an unreliable Bluetooth connection, installing a short USB ext - QGOO BT-06A (CSR8510A10) - ROCKETEK BT4Y (CSR8510A10) - SABRENT BT-UB40 (CSR8510A10) +- Sena UD100-G03 (CSR8510A10) 📶 - StarTech USBBT1EDR4 (CSR8510A10) - Techkey PBT06H (CSR8510A10) - TRENDnet TBW-107UB (CSR8510A10) From 11f91ad40f5db874b10a7d8011051dbef195eee7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Jan 2023 10:07:53 +0100 Subject: [PATCH 02/19] Bump textlint from 12.6.0 to 12.6.1 (#25956) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 346 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 174 insertions(+), 174 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4f02f6395b2..3c81f9537c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "remark-lint-fenced-code-flag": "^3.1.1", "remark-lint-no-shell-dollars": "^3.1.1", "remark-stringify": "^10.0.2", - "textlint": "^12.6.0", + "textlint": "^12.6.1", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^3.0.4" @@ -228,40 +228,40 @@ "dev": true }, "node_modules/@textlint/ast-node-types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.0.tgz", - "integrity": "sha512-DPxbo0d6Uihwcv2MKE/6oUaCuipHeEygow0In98SHZRY8hMytYWoYQEfhcTE5i+0cIcA2hHZhz4OQ0JaujqZ6w==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.1.tgz", + "integrity": "sha512-uzlJ+ZsCAyJm+lBi7j0UeBbj+Oy6w/VWoGJ3iHRHE5eZ8Z4iK66mq+PG/spupmbllLtz77OJbY89BYqgFyjXmA==", "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.0.tgz", - "integrity": "sha512-Yis3qIbOtPwJjbz5316K+P8K/SHCwsJ6YIXAvNjX0wrekhLZIwHDWUlH1cfV4rKSe8IIabBhbiq8lx95w91A3w==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.1.tgz", + "integrity": "sha512-Gxiq6xmDR3PnX0RqRGth/Lu5fyFWoXNPfGxXTLORPFpfs8JKPh/eXGhlwc1f0v4VQzPay2KwVl6SGXvJD5qLXw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", "debug": "^4.3.4" } }, "node_modules/@textlint/ast-traverse": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.0.tgz", - "integrity": "sha512-QJuUkRw6wSFN5SWSYDfcfvMD8nw2fAtuKdtSf64d4MO07e5F9Wkpkr4V1O2dknlBcdQ2nA/T9s59HVoQ1QAe/w==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.1.tgz", + "integrity": "sha512-Y/j7ip7yDuTjuIV4kTRPVnkJKfpI71U+eqXFnrM9sE2xBA9IsqzqiLQeDY+S5hhfQzmcEnZFtAP0hqrYaT6gNA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.0" + "@textlint/ast-node-types": "^12.6.1" } }, "node_modules/@textlint/config-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.0.tgz", - "integrity": "sha512-Sm4GwsABjMquS95K0rr9rHkiHXaxF6USbDc5+sCc/KJ+FqcfFwIBUZvp3inyaD3vgRYsvbYmy92qF10VLwplOA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.1.tgz", + "integrity": "sha512-mvChF2pFusxyQC4gFzIgNcZ4izUt7ci+JdXZtGV+DOzykVUuGhgGo3TFTi/ccgYyqZdq9MxJG6I+dvYB1A2Fog==", "dev": true, "dependencies": { - "@textlint/kernel": "^12.6.0", - "@textlint/module-interop": "^12.6.0", - "@textlint/types": "^12.6.0", - "@textlint/utils": "^12.6.0", + "@textlint/kernel": "^12.6.1", + "@textlint/module-interop": "^12.6.1", + "@textlint/types": "^12.6.1", + "@textlint/utils": "^12.6.1", "debug": "^4.3.4", "rc-config-loader": "^4.1.2", "try-resolve": "^1.0.1" @@ -298,19 +298,19 @@ } }, "node_modules/@textlint/feature-flag": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.0.tgz", - "integrity": "sha512-iIdK/ItmPIOEXn4C97Gz495ni9u+Qzwf8Dc8W8nQaAwy3GALL5hbm5VK84Q0bf6q+/2wgQ3CcTebqySQsX9Ohg==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.1.tgz", + "integrity": "sha512-cY/AraTLdzbwDyAhdpaXB7n1Lw6zA+k+7UaT8mmxMmjs0uYGzdMQa499I0rQatctJ6izrdZXYW0NdUQfG2ugiA==", "dev": true }, "node_modules/@textlint/fixer-formatter": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.0.tgz", - "integrity": "sha512-gFbeq1GC6XGtTg+22GXvGT5veQGw13vuXjosY/2HfWjGsT/7RS6Jq5AL43y3sHQ0pWaOh0Yk+JmDFfL2FqNNFQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.1.tgz", + "integrity": "sha512-BMhvoKQbME9LXvl6CfIM/hZckb+IMiAA6ioDvdM3o63N+xDypS42uzJNpRgzXKGYL1Dv/7R1hsmDzz3fgvGhBw==", "dev": true, "dependencies": { - "@textlint/module-interop": "^12.6.0", - "@textlint/types": "^12.6.0", + "@textlint/module-interop": "^12.6.1", + "@textlint/types": "^12.6.1", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^4.0.2", @@ -322,18 +322,18 @@ } }, "node_modules/@textlint/kernel": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.0.tgz", - "integrity": "sha512-F4lpOc7eNc45i9FCoN39GQpiCbtWunHS6zkn61tj0Wf7YqNuzkjeydaQbFtLcRag3CQw0CcjNBSddPOtLiGZNA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.1.tgz", + "integrity": "sha512-GjNaI36pYx/boy1Xf7NPJFbS0uWHhY9y9DMMl/8ZJZoldN7XrCvJFivNdeYQxu+LTmfGGaUJoTjDpnllOs6XSQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.0", - "@textlint/ast-tester": "^12.6.0", - "@textlint/ast-traverse": "^12.6.0", - "@textlint/feature-flag": "^12.6.0", - "@textlint/source-code-fixer": "^12.6.0", - "@textlint/types": "^12.6.0", - "@textlint/utils": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-tester": "^12.6.1", + "@textlint/ast-traverse": "^12.6.1", + "@textlint/feature-flag": "^12.6.1", + "@textlint/source-code-fixer": "^12.6.1", + "@textlint/types": "^12.6.1", + "@textlint/utils": "^12.6.1", "debug": "^4.3.4", "deep-equal": "^1.1.1", "structured-source": "^4.0.0" @@ -355,15 +355,15 @@ } }, "node_modules/@textlint/linter-formatter": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.0.tgz", - "integrity": "sha512-jz2f78PFjPl9hiOKOa5yxQ6v8vbqY7jNABbOubaLmtrM2zxF/OjbRjrD+w1zzJNlT33yseG2XSJFAdQEyrj30g==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.1.tgz", + "integrity": "sha512-1fQy17vNZy5qem8I71MGEir7gVLSUWcIE4ruQbONiIko9as+AYibt6xX6GtTX+aJejuJJcb+KTeAxKJ+6FA8vg==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.1", "@azu/style-format": "^1.0.0", - "@textlint/module-interop": "^12.6.0", - "@textlint/types": "^12.6.0", + "@textlint/module-interop": "^12.6.1", + "@textlint/types": "^12.6.1", "chalk": "^4.1.2", "debug": "^4.3.4", "is-file": "^1.0.0", @@ -379,12 +379,12 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.0.tgz", - "integrity": "sha512-zy+bs7CW7R+s5FadonIb1ZWKrCt2uW563fDIlwmTLq53At07qFdp5haf60CSHBhatYkSOcUsWBu8+VXqIvRI1A==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.1.tgz", + "integrity": "sha512-T0HO+VrU9VbLRiEx/kH4+gwGMHNMIGkp0Pok+p0I33saOOLyhfGvwOKQgvt2qkxzQEV2L5MtGB8EnW4r5d3CqQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "remark-footnotes": "^3.0.0", @@ -714,61 +714,61 @@ } }, "node_modules/@textlint/module-interop": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.0.tgz", - "integrity": "sha512-gdb6XSBe/1K80jr/wu6q0q2z+d5u9c+QQFSN9C4VseoQJ1udDRQ5vTyMCBsMBdf2DQ5/ccD/8NH0SINe/dAbcA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.1.tgz", + "integrity": "sha512-COyRctLVh2ktAObmht3aNtqUvP0quoellKu1c2RrXny1po+Mf7PkvEKIxphtArE4JXMAmu01cDxfH6X88+eYIg==", "dev": true }, "node_modules/@textlint/source-code-fixer": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.0.tgz", - "integrity": "sha512-K9bijbOIo+bvFYW48+K2EU6H7pp8zL8cRqnZvWcLBgv+cZ4DL1RrUcXE8XK4PtQM+eYu+vzFL7DTdDqLWbcf3A==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.1.tgz", + "integrity": "sha512-J9UZ3uitT+T50ug5X6AoIOwn6kTl54ZmPYBPB9bmH4lwBamN7e4gT65lSweHY1D21elOkq+3bO/OAJMfQfAVHg==", "dev": true, "dependencies": { - "@textlint/types": "^12.6.0", + "@textlint/types": "^12.6.1", "debug": "^4.3.4" } }, "node_modules/@textlint/text-to-ast": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.0.tgz", - "integrity": "sha512-HuXrKhbnV3hv/cQNpvYhlbZI0WiGRBbhk+cnjR9F9tPmwdffHMZg0A52S0GFGVZRVdhxhooUBiBGNewHfSD/eA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.1.tgz", + "integrity": "sha512-22tgSBaNerpwb66eCivjXmdZ3CDX2Il38vpuAGchiI+cl+sENU9dpuntxwEJdZQePX5qrkmw8XGj5kgyMF015A==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.0" + "@textlint/ast-node-types": "^12.6.1" } }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.0.tgz", - "integrity": "sha512-51Lr5/XTKsim+WInSgwDzTWx73QXF6WjbooB8nEkxh1PcXOVkMbjppQcb91woOEbUlMC0h9RXUGzQpWjFM9JpQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.1.tgz", + "integrity": "sha512-fRKsFCL2fGeu0Bt+08FuEc2WHiI8IMDRvy6KT1pmNWO5irS4yL2/OXNknLH3erXvwcJw/hQnd5WEl4hQzS0Erw==", "dev": true, "dependencies": { - "@textlint/markdown-to-ast": "^12.6.0" + "@textlint/markdown-to-ast": "^12.6.1" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.0.tgz", - "integrity": "sha512-qiqkiaC7qR4tkxSeh2MDLVrMcT+oCO+Y3JroP+W9GlSVoHavYW8LD0G7sZNHgCv4lc6zCUXPxC0rZPxsMSkwVA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.1.tgz", + "integrity": "sha512-ZUfG0Xb8qGymIPNp2eFTq9bHvkJo3N3Ia1Aff5W9fsgZib1/Eb55U16Sp60TjhBFns0/p7L7usBC3nd3+tB5mQ==", "dev": true, "dependencies": { - "@textlint/text-to-ast": "^12.6.0" + "@textlint/text-to-ast": "^12.6.1" } }, "node_modules/@textlint/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.0.tgz", - "integrity": "sha512-rCW4OC0bDEhGDxNkhWh2V7F6Bzem5v09uqn3D/7QcDqReSEJ6yUYuNaSRVZCNEkNmgmO9K1nUeQf37wqhPzBJw==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.1.tgz", + "integrity": "sha512-t1SZYahu2olnF8MUhlP6qDIEDyl7WmyIaBYxQdE2qU6xUkZWXS2zIxoAT/pVgvFCzDw3KO5HhIYGVeWRp90dTg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.0" + "@textlint/ast-node-types": "^12.6.1" } }, "node_modules/@textlint/utils": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.0.tgz", - "integrity": "sha512-RzF5onZIS5WQS1gnJJDOb58bb7ktp35GFrLpRmzDMEHS+WrT8xQ97NwIivm+5f0/MQluiOUoJ6tNlltIQKTAqQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.1.tgz", + "integrity": "sha512-HJkqYXT2FAAHDM5XLFpQLF/CEdm8c2ltMeKmPBSSty1VfPXQMi8tGPT1b58b8KWh6dVmi7w0YYB7NrquuzXOKA==", "dev": true }, "node_modules/@types/concat-stream": { @@ -5349,23 +5349,23 @@ "dev": true }, "node_modules/textlint": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.0.tgz", - "integrity": "sha512-ApCBRN6bq0ATD3E3f7gdRni4L/zcpy6mbZ9PrDyfc96zt0T98FYd2hATxS1g13AOov8pgMGm8qYmYFTqKXRFzQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.1.tgz", + "integrity": "sha512-ro33XJnA9UpQVeheGbPalYa5qpyA2R2yZdIgfC8xEvlOTF5SWJkdeNMm24Ml6d36bgwbqIO2yISKu7vlzBxHRA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.0", - "@textlint/ast-traverse": "^12.6.0", - "@textlint/config-loader": "^12.6.0", - "@textlint/feature-flag": "^12.6.0", - "@textlint/fixer-formatter": "^12.6.0", - "@textlint/kernel": "^12.6.0", - "@textlint/linter-formatter": "^12.6.0", - "@textlint/module-interop": "^12.6.0", - "@textlint/textlint-plugin-markdown": "^12.6.0", - "@textlint/textlint-plugin-text": "^12.6.0", - "@textlint/types": "^12.6.0", - "@textlint/utils": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-traverse": "^12.6.1", + "@textlint/config-loader": "^12.6.1", + "@textlint/feature-flag": "^12.6.1", + "@textlint/fixer-formatter": "^12.6.1", + "@textlint/kernel": "^12.6.1", + "@textlint/linter-formatter": "^12.6.1", + "@textlint/module-interop": "^12.6.1", + "@textlint/textlint-plugin-markdown": "^12.6.1", + "@textlint/textlint-plugin-text": "^12.6.1", + "@textlint/types": "^12.6.1", + "@textlint/utils": "^12.6.1", "debug": "^4.3.4", "deep-equal": "^1.1.1", "file-entry-cache": "^5.0.1", @@ -6449,40 +6449,40 @@ "dev": true }, "@textlint/ast-node-types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.0.tgz", - "integrity": "sha512-DPxbo0d6Uihwcv2MKE/6oUaCuipHeEygow0In98SHZRY8hMytYWoYQEfhcTE5i+0cIcA2hHZhz4OQ0JaujqZ6w==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.1.tgz", + "integrity": "sha512-uzlJ+ZsCAyJm+lBi7j0UeBbj+Oy6w/VWoGJ3iHRHE5eZ8Z4iK66mq+PG/spupmbllLtz77OJbY89BYqgFyjXmA==", "dev": true }, "@textlint/ast-tester": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.0.tgz", - "integrity": "sha512-Yis3qIbOtPwJjbz5316K+P8K/SHCwsJ6YIXAvNjX0wrekhLZIwHDWUlH1cfV4rKSe8IIabBhbiq8lx95w91A3w==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.1.tgz", + "integrity": "sha512-Gxiq6xmDR3PnX0RqRGth/Lu5fyFWoXNPfGxXTLORPFpfs8JKPh/eXGhlwc1f0v4VQzPay2KwVl6SGXvJD5qLXw==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", "debug": "^4.3.4" } }, "@textlint/ast-traverse": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.0.tgz", - "integrity": "sha512-QJuUkRw6wSFN5SWSYDfcfvMD8nw2fAtuKdtSf64d4MO07e5F9Wkpkr4V1O2dknlBcdQ2nA/T9s59HVoQ1QAe/w==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.1.tgz", + "integrity": "sha512-Y/j7ip7yDuTjuIV4kTRPVnkJKfpI71U+eqXFnrM9sE2xBA9IsqzqiLQeDY+S5hhfQzmcEnZFtAP0hqrYaT6gNA==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.0" + "@textlint/ast-node-types": "^12.6.1" } }, "@textlint/config-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.0.tgz", - "integrity": "sha512-Sm4GwsABjMquS95K0rr9rHkiHXaxF6USbDc5+sCc/KJ+FqcfFwIBUZvp3inyaD3vgRYsvbYmy92qF10VLwplOA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.1.tgz", + "integrity": "sha512-mvChF2pFusxyQC4gFzIgNcZ4izUt7ci+JdXZtGV+DOzykVUuGhgGo3TFTi/ccgYyqZdq9MxJG6I+dvYB1A2Fog==", "dev": true, "requires": { - "@textlint/kernel": "^12.6.0", - "@textlint/module-interop": "^12.6.0", - "@textlint/types": "^12.6.0", - "@textlint/utils": "^12.6.0", + "@textlint/kernel": "^12.6.1", + "@textlint/module-interop": "^12.6.1", + "@textlint/types": "^12.6.1", + "@textlint/utils": "^12.6.1", "debug": "^4.3.4", "rc-config-loader": "^4.1.2", "try-resolve": "^1.0.1" @@ -6518,19 +6518,19 @@ } }, "@textlint/feature-flag": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.0.tgz", - "integrity": "sha512-iIdK/ItmPIOEXn4C97Gz495ni9u+Qzwf8Dc8W8nQaAwy3GALL5hbm5VK84Q0bf6q+/2wgQ3CcTebqySQsX9Ohg==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.1.tgz", + "integrity": "sha512-cY/AraTLdzbwDyAhdpaXB7n1Lw6zA+k+7UaT8mmxMmjs0uYGzdMQa499I0rQatctJ6izrdZXYW0NdUQfG2ugiA==", "dev": true }, "@textlint/fixer-formatter": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.0.tgz", - "integrity": "sha512-gFbeq1GC6XGtTg+22GXvGT5veQGw13vuXjosY/2HfWjGsT/7RS6Jq5AL43y3sHQ0pWaOh0Yk+JmDFfL2FqNNFQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.1.tgz", + "integrity": "sha512-BMhvoKQbME9LXvl6CfIM/hZckb+IMiAA6ioDvdM3o63N+xDypS42uzJNpRgzXKGYL1Dv/7R1hsmDzz3fgvGhBw==", "dev": true, "requires": { - "@textlint/module-interop": "^12.6.0", - "@textlint/types": "^12.6.0", + "@textlint/module-interop": "^12.6.1", + "@textlint/types": "^12.6.1", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^4.0.2", @@ -6542,18 +6542,18 @@ } }, "@textlint/kernel": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.0.tgz", - "integrity": "sha512-F4lpOc7eNc45i9FCoN39GQpiCbtWunHS6zkn61tj0Wf7YqNuzkjeydaQbFtLcRag3CQw0CcjNBSddPOtLiGZNA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.1.tgz", + "integrity": "sha512-GjNaI36pYx/boy1Xf7NPJFbS0uWHhY9y9DMMl/8ZJZoldN7XrCvJFivNdeYQxu+LTmfGGaUJoTjDpnllOs6XSQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.0", - "@textlint/ast-tester": "^12.6.0", - "@textlint/ast-traverse": "^12.6.0", - "@textlint/feature-flag": "^12.6.0", - "@textlint/source-code-fixer": "^12.6.0", - "@textlint/types": "^12.6.0", - "@textlint/utils": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-tester": "^12.6.1", + "@textlint/ast-traverse": "^12.6.1", + "@textlint/feature-flag": "^12.6.1", + "@textlint/source-code-fixer": "^12.6.1", + "@textlint/types": "^12.6.1", + "@textlint/utils": "^12.6.1", "debug": "^4.3.4", "deep-equal": "^1.1.1", "structured-source": "^4.0.0" @@ -6577,15 +6577,15 @@ } }, "@textlint/linter-formatter": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.0.tgz", - "integrity": "sha512-jz2f78PFjPl9hiOKOa5yxQ6v8vbqY7jNABbOubaLmtrM2zxF/OjbRjrD+w1zzJNlT33yseG2XSJFAdQEyrj30g==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.1.tgz", + "integrity": "sha512-1fQy17vNZy5qem8I71MGEir7gVLSUWcIE4ruQbONiIko9as+AYibt6xX6GtTX+aJejuJJcb+KTeAxKJ+6FA8vg==", "dev": true, "requires": { "@azu/format-text": "^1.0.1", "@azu/style-format": "^1.0.0", - "@textlint/module-interop": "^12.6.0", - "@textlint/types": "^12.6.0", + "@textlint/module-interop": "^12.6.1", + "@textlint/types": "^12.6.1", "chalk": "^4.1.2", "debug": "^4.3.4", "is-file": "^1.0.0", @@ -6601,12 +6601,12 @@ } }, "@textlint/markdown-to-ast": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.0.tgz", - "integrity": "sha512-zy+bs7CW7R+s5FadonIb1ZWKrCt2uW563fDIlwmTLq53At07qFdp5haf60CSHBhatYkSOcUsWBu8+VXqIvRI1A==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.1.tgz", + "integrity": "sha512-T0HO+VrU9VbLRiEx/kH4+gwGMHNMIGkp0Pok+p0I33saOOLyhfGvwOKQgvt2qkxzQEV2L5MtGB8EnW4r5d3CqQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "remark-footnotes": "^3.0.0", @@ -6824,61 +6824,61 @@ } }, "@textlint/module-interop": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.0.tgz", - "integrity": "sha512-gdb6XSBe/1K80jr/wu6q0q2z+d5u9c+QQFSN9C4VseoQJ1udDRQ5vTyMCBsMBdf2DQ5/ccD/8NH0SINe/dAbcA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.1.tgz", + "integrity": "sha512-COyRctLVh2ktAObmht3aNtqUvP0quoellKu1c2RrXny1po+Mf7PkvEKIxphtArE4JXMAmu01cDxfH6X88+eYIg==", "dev": true }, "@textlint/source-code-fixer": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.0.tgz", - "integrity": "sha512-K9bijbOIo+bvFYW48+K2EU6H7pp8zL8cRqnZvWcLBgv+cZ4DL1RrUcXE8XK4PtQM+eYu+vzFL7DTdDqLWbcf3A==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.1.tgz", + "integrity": "sha512-J9UZ3uitT+T50ug5X6AoIOwn6kTl54ZmPYBPB9bmH4lwBamN7e4gT65lSweHY1D21elOkq+3bO/OAJMfQfAVHg==", "dev": true, "requires": { - "@textlint/types": "^12.6.0", + "@textlint/types": "^12.6.1", "debug": "^4.3.4" } }, "@textlint/text-to-ast": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.0.tgz", - "integrity": "sha512-HuXrKhbnV3hv/cQNpvYhlbZI0WiGRBbhk+cnjR9F9tPmwdffHMZg0A52S0GFGVZRVdhxhooUBiBGNewHfSD/eA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.1.tgz", + "integrity": "sha512-22tgSBaNerpwb66eCivjXmdZ3CDX2Il38vpuAGchiI+cl+sENU9dpuntxwEJdZQePX5qrkmw8XGj5kgyMF015A==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.0" + "@textlint/ast-node-types": "^12.6.1" } }, "@textlint/textlint-plugin-markdown": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.0.tgz", - "integrity": "sha512-51Lr5/XTKsim+WInSgwDzTWx73QXF6WjbooB8nEkxh1PcXOVkMbjppQcb91woOEbUlMC0h9RXUGzQpWjFM9JpQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.1.tgz", + "integrity": "sha512-fRKsFCL2fGeu0Bt+08FuEc2WHiI8IMDRvy6KT1pmNWO5irS4yL2/OXNknLH3erXvwcJw/hQnd5WEl4hQzS0Erw==", "dev": true, "requires": { - "@textlint/markdown-to-ast": "^12.6.0" + "@textlint/markdown-to-ast": "^12.6.1" } }, "@textlint/textlint-plugin-text": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.0.tgz", - "integrity": "sha512-qiqkiaC7qR4tkxSeh2MDLVrMcT+oCO+Y3JroP+W9GlSVoHavYW8LD0G7sZNHgCv4lc6zCUXPxC0rZPxsMSkwVA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.1.tgz", + "integrity": "sha512-ZUfG0Xb8qGymIPNp2eFTq9bHvkJo3N3Ia1Aff5W9fsgZib1/Eb55U16Sp60TjhBFns0/p7L7usBC3nd3+tB5mQ==", "dev": true, "requires": { - "@textlint/text-to-ast": "^12.6.0" + "@textlint/text-to-ast": "^12.6.1" } }, "@textlint/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.0.tgz", - "integrity": "sha512-rCW4OC0bDEhGDxNkhWh2V7F6Bzem5v09uqn3D/7QcDqReSEJ6yUYuNaSRVZCNEkNmgmO9K1nUeQf37wqhPzBJw==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.1.tgz", + "integrity": "sha512-t1SZYahu2olnF8MUhlP6qDIEDyl7WmyIaBYxQdE2qU6xUkZWXS2zIxoAT/pVgvFCzDw3KO5HhIYGVeWRp90dTg==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.0" + "@textlint/ast-node-types": "^12.6.1" } }, "@textlint/utils": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.0.tgz", - "integrity": "sha512-RzF5onZIS5WQS1gnJJDOb58bb7ktp35GFrLpRmzDMEHS+WrT8xQ97NwIivm+5f0/MQluiOUoJ6tNlltIQKTAqQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.1.tgz", + "integrity": "sha512-HJkqYXT2FAAHDM5XLFpQLF/CEdm8c2ltMeKmPBSSty1VfPXQMi8tGPT1b58b8KWh6dVmi7w0YYB7NrquuzXOKA==", "dev": true }, "@types/concat-stream": { @@ -10121,23 +10121,23 @@ "dev": true }, "textlint": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.0.tgz", - "integrity": "sha512-ApCBRN6bq0ATD3E3f7gdRni4L/zcpy6mbZ9PrDyfc96zt0T98FYd2hATxS1g13AOov8pgMGm8qYmYFTqKXRFzQ==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.1.tgz", + "integrity": "sha512-ro33XJnA9UpQVeheGbPalYa5qpyA2R2yZdIgfC8xEvlOTF5SWJkdeNMm24Ml6d36bgwbqIO2yISKu7vlzBxHRA==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.0", - "@textlint/ast-traverse": "^12.6.0", - "@textlint/config-loader": "^12.6.0", - "@textlint/feature-flag": "^12.6.0", - "@textlint/fixer-formatter": "^12.6.0", - "@textlint/kernel": "^12.6.0", - "@textlint/linter-formatter": "^12.6.0", - "@textlint/module-interop": "^12.6.0", - "@textlint/textlint-plugin-markdown": "^12.6.0", - "@textlint/textlint-plugin-text": "^12.6.0", - "@textlint/types": "^12.6.0", - "@textlint/utils": "^12.6.0", + "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-traverse": "^12.6.1", + "@textlint/config-loader": "^12.6.1", + "@textlint/feature-flag": "^12.6.1", + "@textlint/fixer-formatter": "^12.6.1", + "@textlint/kernel": "^12.6.1", + "@textlint/linter-formatter": "^12.6.1", + "@textlint/module-interop": "^12.6.1", + "@textlint/textlint-plugin-markdown": "^12.6.1", + "@textlint/textlint-plugin-text": "^12.6.1", + "@textlint/types": "^12.6.1", + "@textlint/utils": "^12.6.1", "debug": "^4.3.4", "deep-equal": "^1.1.1", "file-entry-cache": "^5.0.1", diff --git a/package.json b/package.json index 2c1a7c1089f..3690e042c7b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "remark-lint-fenced-code-flag": "^3.1.1", "remark-lint-no-shell-dollars": "^3.1.1", "remark-stringify": "^10.0.2", - "textlint": "^12.6.0", + "textlint": "^12.6.1", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^3.0.4" From 7c6882575ac9acfcb9abbf1e8103b8bb6c874231 Mon Sep 17 00:00:00 2001 From: MHFDoge Date: Thu, 26 Jan 2023 05:55:40 -0600 Subject: [PATCH 03/19] Add button to list of known available (#25953) --- source/_integrations/webostv.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown index c1ddc484fd5..13dc3b5d31b 100644 --- a/source/_integrations/webostv.markdown +++ b/source/_integrations/webostv.markdown @@ -121,7 +121,7 @@ Available services: `button`, `command` | Service data attribute | Optional | Description | | ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `entity_id` | no | Target a specific webostv media player. | -| `button` | no | Name of the button. Known possible values are `LEFT`, `RIGHT`, `DOWN`, `UP`, `HOME`, `MENU`, `BACK`, `ENTER`, `DASH`, `INFO`, `ASTERISK`, `CC`, `EXIT`, `MUTE`, `RED`, `GREEN`, `BLUE`, `VOLUMEUP`, `VOLUMEDOWN`, `CHANNELUP`, `CHANNELDOWN`, `PLAY`, `PAUSE`, `NETFLIX`, `GUIDE`, `AMAZON`, `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9` | +| `button` | no | Name of the button. Known possible values are `LEFT`, `RIGHT`, `DOWN`, `UP`, `HOME`, `MENU`, `BACK`, `ENTER`, `DASH`, `INFO`, `ASTERISK`, `CC`, `EXIT`, `MUTE`, `RED`, `GREEN`, `BLUE`, `YELLOW`, `VOLUMEUP`, `VOLUMEDOWN`, `CHANNELUP`, `CHANNELDOWN`, `PLAY`, `PAUSE`, `NETFLIX`, `GUIDE`, `AMAZON`, `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9` | ### Service `webostv.command` From 9ce2513f936ba183b82cab447767ae03f2eafb47 Mon Sep 17 00:00:00 2001 From: Vincent van den Braken Date: Thu, 26 Jan 2023 15:55:15 +0100 Subject: [PATCH 04/19] Update flume.markdown - minor change (#25960) --- source/_integrations/flume.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/flume.markdown b/source/_integrations/flume.markdown index 0ffc78a6195..b848386846c 100644 --- a/source/_integrations/flume.markdown +++ b/source/_integrations/flume.markdown @@ -31,7 +31,7 @@ To add `Flume` to your installation, go to **Settings** -> **Devices & Services* ## Notifications -Flume notifications are available via binary sensors. To clear the notifications, you will need to use your Flume app or go to: [https://portal.flumewater.com/notifications]([https://portal.flumewater.com/notifications]) and clear the notification in question. +Flume notifications are available via binary sensors. To clear the notifications, you will need to use your Flume app or go to: [https://portal.flumewater.com/notifications](https://portal.flumewater.com/notifications) and clear the notification in question. The following notifications are supported: From 48b109eb9fa19c96ef5d9d6ff01235642bd4f9d0 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 26 Jan 2023 05:59:17 -1000 Subject: [PATCH 05/19] Add Yale Smart Safe to August and Yale Access Bluetooth (#25952) --- source/_integrations/august.markdown | 1 + source/_integrations/yalexs_ble.markdown | 2 ++ 2 files changed, 3 insertions(+) diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown index 90efcdb2ca6..7959ce2243e 100644 --- a/source/_integrations/august.markdown +++ b/source/_integrations/august.markdown @@ -44,6 +44,7 @@ The `august` integration allows you to integrate your [August](https://august.co | Yale Conexis L1 | yes | | Yale Conexis L2 | yes | | Yale Linus | yes | +| Yale Smart Safe | yes | There is currently support for the following device types within Home Assistant: diff --git a/source/_integrations/yalexs_ble.markdown b/source/_integrations/yalexs_ble.markdown index def3c0c9bad..8533280f507 100644 --- a/source/_integrations/yalexs_ble.markdown +++ b/source/_integrations/yalexs_ble.markdown @@ -37,6 +37,8 @@ Devices must have a Yale Access module installed to function with this integrati - YRD420 (Yale Assure Lock 2) - YRD450 (Yale Assure Lock 2 Key Free) - YUR/SSDL/1/SIL (Yale Unity Screen Door Lock - Australia) +- IES-D210W-G0 (Yale Smart Safe) +- YRSM-1 (Yale Smart Safe) - ASL-05 (August WiFi Smart Lock - Gen 4) - ASL-03 (August Smart Lock Pro - Gen 3) - ASL-02 (August Smart Lock Pro - Gen 2) From 0062b65e1d6a6ca73e970a86f1b704420d2847a8 Mon Sep 17 00:00:00 2001 From: "skipper.nick" Date: Thu, 26 Jan 2023 08:00:42 -0800 Subject: [PATCH 06/19] Update alarmdecoder.markdown (#25954) --- source/_integrations/alarmdecoder.markdown | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/source/_integrations/alarmdecoder.markdown b/source/_integrations/alarmdecoder.markdown index 6783df78be4..09f4f5af901 100644 --- a/source/_integrations/alarmdecoder.markdown +++ b/source/_integrations/alarmdecoder.markdown @@ -130,17 +130,25 @@ Using a combination of the available services and attributes, you can create swi friendly_name: Chime value_template: "{{ is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) }}" turn_on: - service: alarmdecoder.alarm_toggle_chime - target: + - condition: state entity_id: alarm_control_panel.alarm_panel - data: - code: !secret alarm_code + attribute: chime + state: False + - service: alarmdecoder.alarm_toggle_chime + target: + entity_id: alarm_control_panel.alarm_panel + data: + code: !secret alarm_code turn_off: - service: alarmdecoder.alarm_toggle_chime - target: + - condition: state entity_id: alarm_control_panel.alarm_panel - data: - code: !secret alarm_code + attribute: chime + state: True + - service: alarmdecoder.alarm_toggle_chime + target: + entity_id: alarm_control_panel.alarm_panel + data: + code: !secret alarm_code icon_template: >- {% if is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) %} mdi:bell-ring From 34e1fc6e14e32165cf0e5ad446ed46bcc5746fbd Mon Sep 17 00:00:00 2001 From: Sven Serlier <85389871+wrt54g@users.noreply.github.com> Date: Thu, 26 Jan 2023 17:41:19 +0100 Subject: [PATCH 07/19] Update IFTTT URL (#25955) --- source/_integrations/alarm_control_panel.ifttt.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/alarm_control_panel.ifttt.markdown b/source/_integrations/alarm_control_panel.ifttt.markdown index 6973ff7a648..cc1655404f1 100644 --- a/source/_integrations/alarm_control_panel.ifttt.markdown +++ b/source/_integrations/alarm_control_panel.ifttt.markdown @@ -7,7 +7,7 @@ ha_release: 0.66 ha_domain: ifttt --- -The `ifttt` platform allows you to integrate security systems that have no open API but can be controlled through [IFTTT](https://ifttt.com/discover). +The `ifttt` platform allows you to integrate security systems that have no open API but can be controlled through [IFTTT](https://ifttt.com/explore). This platform depends on the [IFTTT](/integrations/ifttt/) Home Assistant integration. See the integrations documentation to set it up. From 7035f0357983ae3de1604c05cf7340896a9ab24c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 26 Jan 2023 15:53:09 -0500 Subject: [PATCH 08/19] Add Assist blog (#25969) * Add Assist blog * Updates to blog * Track language support --- source/_includes/site/sidebar.html | 2 +- ...01-26-year-of-the-voice-chapter-1.markdown | 108 ++++++++++++++++++ source/images/assist/assist-icon.svg | 1 + .../assist-dialog.png | Bin 0 -> 9024 bytes .../social.png | Bin 0 -> 97975 bytes 5 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown create mode 100644 source/images/assist/assist-icon.svg create mode 100644 source/images/blog/2023-01-26-year-of-the-voice-chapter-1/assist-dialog.png create mode 100644 source/images/blog/2023-01-26-year-of-the-voice-chapter-1/social.png diff --git a/source/_includes/site/sidebar.html b/source/_includes/site/sidebar.html index 2636a7cab90..88c24aad097 100644 --- a/source/_includes/site/sidebar.html +++ b/source/_includes/site/sidebar.html @@ -57,4 +57,4 @@ } } }); - \ No newline at end of file + diff --git a/source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown b/source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown new file mode 100644 index 00000000000..c27d93d22a5 --- /dev/null +++ b/source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown @@ -0,0 +1,108 @@ +--- +layout: post +title: "Year of the Voice - Chapter 1: Assist" +description: "Assist is the new feature in Home Assistant to handle all your conversations." +date: 2023-01-26 00:00:00 +date_formatted: "January 26, 2023" +author: Paulus Schoutsen +comments: true +categories: Assist +og_image: /images/blog/2023-01-26-year-of-the-voice-chapter-1/social.png +--- + +This year is Home Assistant's [year of the voice](https://www.home-assistant.io/blog/2022/12/20/year-of-voice/). It is our goal for 2023 to let users control Home Assistant in their own language. Today, one month into 2023, we start our first chapter. + +At Home Assistant we believe that technology is meant to be played with, and projects should be usable as soon as possible. Together with the community we can then iterate and refine. That's why today, we're delivering a basic experience for 22 languages to interact with Home Assistant. Oh, and we are also releasing some fun stuff that we cooked up along the way. + +_To watch the video presentation of this blog post, including live demos, check [the recording of our live stream](https://www.youtube.com/live/ixgNT3RETPg)._ + +## Intentions + +The core of a voice assistant is to be able to understand the intention of a spoken sentence. What is it the user wants to do? To extract these intentions we created our own template sentence matching format and intent recognizer named [Hassil](https://github.com/home-assistant/hassil). + +This new format is used by our new [Home Assistant Intents](https://github.com/home-assistant/intents) project. The goal of this project is to collect home automation sentences in every possible language. Since it's start a month ago, we have had 112 people contribute. The project now supports [22 languages and 14 more are in progress](https://home-assistant.github.io/intents/). + +## Assist + +We have added a new feature to Home Assistant: Assist icon Assist. It allow users to use natural language to control Home Assistant. It is powered by Hassil and the sentences from the Home Assistant Intent project. + + + +We want Assist to be as accessible to as many people as possible. To do this, we made it work without requiring extra hardware – just update to Home Assistant 2023.2 and you can start! Through a combination of smart algorithms combined with sheer brute force (we are collecting a lot of sentences), we have been able to make a system that works for most common sentences. Support for more powerful, AI-powered, intent recognizers might come in the future as an opt-in feature. + +Assist is enabled by default in the Home Assistant 2023.2 release. Tap the new Assist icon Assist icon at the top right of the dashboard to use it. + +[Assist documentation.](https://next.home-assistant.io/docs/assist/) + +Screenshot of the Assist dialog + +## Assist on Android Wear + +We want to make it as easy as possible to use Assist. To enable this for Android users, we have added a new tile to the Android Wear app. A simple swipe from the clock face will show the assist button and allows you to send voice commands. + +[Assist on Android Wear documentation.](https://next.home-assistant.io/docs/assist/android/) + +_The new tile is currently available in the [Android beta](https://play.google.com/apps/testing/io.homeassistant.companion.android) and will be part of the next Android release._ + + + +## Assist via Siri and Apple Shortcuts + +For Apple devices we have been able to create a fully hands-free experience by integrating with Siri. This is powered by a new Apple Shortcut action called Assist, which is part of the Home Assistant app. This shortcut action can also be manually triggered from your Mac taskbar, iPhone home screen or Apple Watch complication. We have two ready-made shortcuts that users can import from the documentation with a single tap to unlock these features. + +[Assist via Siri and Apple Shortcuts documentation.](https://next.home-assistant.io/docs/assist/apple/) + +_The Assist shortcut will be available in the Mac and iOS beta channel today and will be part of the next release for iOS and Mac._ + + + +## Custom Sentences + +With Home Assistant we believe that every home is uniquely yours and that [technology should adapt to you, not the other way around.](https://www.home-assistant.io/blog/2016/01/19/perfect-home-automation/) That's why we have architected Home Assistant to allow users to extensively customize their experience. Our Assist feature is no different. + +- Are you into Game of Thrones and want every response to be "hodor"? +- Want to turn on lights in rooms by saying "Hocus pocus living room"? +- Want to trigger your party mode script using a custom sentence? + +Assist includes support for custom sentences, responses and intents, allowing you to achieve all of the above, and more. We've designed the custom sentence format in a way that it can be easily shared with the community. + +Read [the documentation](https://next.home-assistant.io/docs/assist/custom_sentences) on how to get started. + +_In a future release we're planning on adding a user interface to customize and import sentences._ + +## Custom Assist engines + +By default Assist is powered by our own intent recognizer. It is local but it's limited to controlling devices. Maybe you want to be able to ask more wide-range queries or you are looking for a conversational AI that will make up responses and present it as the truth. For such cases the Assist feature supports [swapping out its engine](https://developers.home-assistant.io/docs/core/conversation/custom_agent) that handles all Assist interactions. + +The Home Assistant 2023.2 release includes two alternative Assist engines that you can enable: Google Assistant and OpenAI GPT-3. + +The Google Assistant Assist engine is able to control your devices if you have linked up your Home Assistant instance to Google Assistant. + +All ways to intereact with Assist will work, as they are not bound to the the Assist engine that is being used. So if you ever wanted to use Google Assistant on your HomePod, now you can 🤭 + + + +The OpenAI GPT-3 Assist engine will process all your interactions using GPT-3, a sibling of the infamous ChatGPT. It is not able to control your house or [help you automate your house](/blog/2023/01/23/help-others-leave-ai-at-the-dor/). Anything you ask it may or may not be factually correct. But it can be fun! + +_In a future release we're planning to make it possible to configure multiple Assist engines to handle interactions._ + +## What's next + +For Year of the Voice - Chapter 1 we focused on building intent recognition into Home Assistant while relying on Google and Apple to do the hard parts (speech recognition). This allowed us the fastest path to get something to the community to play with. + +We will continue collecting home automation sentences for all languages ([anyone can help!](https://developers.home-assistant.io/docs/voice/intent-recognition/)). Updates will be included with every major release of Home Assistant. + +Our next step is integrating Speech-to-Text and Text-to-Speech with Assist. We don't have a timeline yet when that will be ready. Stay tuned! + +## Credits + +A lot of people have worked very hard to make all of the above possible. + +**Technology:** +[Mike Hansen](https://github.com/synesthesiam), [Paulus Schoutsen](https://github.com/balloob), [Daniel Shokouhi](https://github.com/dshokouhi), [Zac West](https://github.com/zacwest), [Rosemary Orchard](https://github.com/rosemaryorchard), [Tronikos](https://github.com/tronikos) + +**Language Leaders:** +[@AalianKhan](https://github.com/AalianKhan), [@Ahmed-farag36](https://github.com/Ahmed-farag36), [@alpdmrel](https://github.com/alpdmrel), [@arunshekher](https://github.com/arunshekher), [@auanasgheps](https://github.com/auanasgheps), [@benjaminlecouteux](https://github.com/benjaminlecouteux), [@bluefoxlee](https://github.com/bluefoxlee), [@cibernox](https://github.com/cibernox), [@cvladan](https://github.com/cvladan), [@davefx](https://github.com/davefx), [@dinhchinh82](https://github.com/dinhchinh82), [@dsimop](https://github.com/dsimop), [@duhow](https://github.com/duhow), [@easterapps](https://github.com/easterapps), [@ErnestStaug](https://github.com/ErnestStaug), [@fadamsen](https://github.com/fadamsen), [@flexy2dd](https://github.com/flexy2dd), [@gabimarchidan](https://github.com/gabimarchidan), [@haim-b](https://github.com/haim-b), [@halecivo](https://github.com/halecivo), [@HepoH3](https://github.com/HepoH3), [@hertzg](https://github.com/hertzg), [@hristo-atanasov](https://github.com/hristo-atanasov), [@huusissa](https://github.com/huusissa), [@joaorgoncalves](https://github.com/joaorgoncalves), [@larsdunemark](https://github.com/larsdunemark), [@leranp](https://github.com/leranp), [@LubosKadasi](https://github.com/LubosKadasi), [@makstech](https://github.com/makstech), [@mojikosu](https://github.com/mojikosu), [@MTrab](https://github.com/MTrab), [@nagyrobi](https://github.com/nagyrobi), [@schizza](https://github.com/schizza), [@Scorpoon](https://github.com/Scorpoon), [@skynetua](https://github.com/skynetua), [@spuljko](https://github.com/spuljko), [@tetele](https://github.com/tetele), [@TheFes](https://github.com/TheFes), [@Uriziel01](https://github.com/Uriziel01), [@xraver](https://github.com/xraver), [@zubir2k](https://github.com/zubir2k) + +**Voice Community:** +[@Alexivia](https://github.com/Alexivia), [@Atalonica](https://github.com/Atalonica), [@AwesomeGuy000](https://github.com/AwesomeGuy000), [@BossNeo](https://github.com/BossNeo), [@CedricFinance](https://github.com/CedricFinance), [@Davidsoff](https://github.com/Davidsoff), [@EmilZackrisson](https://github.com/EmilZackrisson), [@FragMenthor](https://github.com/FragMenthor), [@InfiniteBed](https://github.com/InfiniteBed), [@Kalma-House](https://github.com/Kalma-House), [@Licmeth](https://github.com/Licmeth), [@Marlo461](https://github.com/Marlo461), [@N3rdix](https://github.com/N3rdix), [@Nismonx](https://github.com/Nismonx), [@Robin-St](https://github.com/Robin-St), [@TaQuangTien](https://github.com/TaQuangTien), [@ThomDietrich](https://github.com/ThomDietrich), [@TomaszPilch](https://github.com/TomaszPilch), [@Wojciechgc](https://github.com/Wojciechgc), [@alessandroias](https://github.com/alessandroias), [@bemble](https://github.com/bemble), [@berendhaan](https://github.com/berendhaan), [@dejan2101](https://github.com/dejan2101), [@dependabot[@bot]](https://github.com/dependabot[@bot]), [@dobromir-hristov](https://github.com/dobromir-hristov), [@frenck](https://github.com/frenck), [@hugovsky](https://github.com/hugovsky), [@iddiek](https://github.com/iddiek), [@jfisbein](https://github.com/jfisbein), [@jharrvis](https://github.com/jharrvis), [@jorclaret](https://github.com/jorclaret), [@kamildoleglo](https://github.com/kamildoleglo), [@kblin](https://github.com/kblin), [@khymmera](https://github.com/khymmera), [@kroimon](https://github.com/kroimon), [@lellky](https://github.com/lellky), [@ludeeus](https://github.com/ludeeus), [@lukahra](https://github.com/lukahra), [@lunmay](https://github.com/lunmay), [@mardito](https://github.com/mardito), [@martindybal](https://github.com/martindybal), [@mib1185](https://github.com/mib1185), [@michaelmior](https://github.com/michaelmior), [@orrc](https://github.com/orrc), [@pckahrs](https://github.com/pckahrs), [@piitaya](https://github.com/piitaya), [@pmentis](https://github.com/pmentis), [@poltalashka](https://github.com/poltalashka), [@rPonuganti](https://github.com/rPonuganti), [@rechin304](https://github.com/rechin304), [@relust](https://github.com/relust), [@rickydg](https://github.com/rickydg), [@rpochot](https://github.com/rpochot), [@rrakso](https://github.com/rrakso), [@rumbu13](https://github.com/rumbu13), [@sanyatuning](https://github.com/sanyatuning), [@tasmin](https://github.com/tasmin), [@thecode](https://github.com/thecode), [@waltlillyman](https://github.com/waltlillyman), [@witold-gren](https://github.com/witold-gren), [@x15pa3ck15x](https://github.com/x15pa3ck15x), [@yuvalabou](https://github.com/yuvalabou) diff --git a/source/images/assist/assist-icon.svg b/source/images/assist/assist-icon.svg new file mode 100644 index 00000000000..4e2e8e01b42 --- /dev/null +++ b/source/images/assist/assist-icon.svg @@ -0,0 +1 @@ + diff --git a/source/images/blog/2023-01-26-year-of-the-voice-chapter-1/assist-dialog.png b/source/images/blog/2023-01-26-year-of-the-voice-chapter-1/assist-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..a070109eda6a62a49d96ed63478016cd9300dce6 GIT binary patch literal 9024 zcmeHsXHZko7biuEKu}t!A{~^_rT5;YD3M4NLJ!h|6p@b73>~D22uOzqgf2}Xp-Yp1 zbSXjrL8`RH|IU8c{j#&OyR%>R&Ad71o_pGT@7!~LZ{8c@huR}PgOyvnZ<7Lyp-xk#G%E8BML z8u``-m1}D6>i_MOrS`DCzTV`^@k48e)#J;8p=C?Y02O_s@bK`l-xmc7XW7}=jsqv9 z)7yF2ISDE0$-Rs6<+BGZM;{l@xa$vtbINv3FO!p#gM))>YHD7;er<~kl~-2v7(T6D zJkHP0cL|Gs+t3?Z^?7>#qN%AVBO}9Y=(M!7^u>!8CMG7(-V=CG^o#V5g@uLLU#F8A zu~8-H%F0TwgskVUQ;R1y^z`(q<_`k1O2R(W7A>7cmp1$P`Gw?F#>K^1TU#gpPIDt5 z;Jl@)q5Am63_e@YW5$?1y4h4$gpgI9yed9Q6%Ens-(d)N!z5pO$p3f~rKn#*eMkPd z!lmYr(mD4t$y7-9 zbT?FHR_Y?T(evoR=4WwQ%dq{KZd_e_<)$2pc$C)LcoICE*H9BxO*~}qXYxFB#9mpy zN9B=uT#=$7F1h9@R3MNczKPeR01xYCv3gQI>Dxzc8UKs=Z)gG!<%d2K3K{!7sr zRK8nQGo?rA@b)&^hTJW95)cMwb2=vs*%f@{brT#r;@oE6>;-DZ?``!1Rdo=lJQsi;-2ADaZ%TTg8tY9wtXH^SY^idKuS z6((y<_41~rpW(j0wlt(I+UtxmdB?MdwLl~JE7_mk;|)a9xK$(&Db{8`>+No#`PE;% zcAEZzfYC|+r)+EX30z1&8zikz&qg){6F4)$d}fxnd_-GQgLm5*4D^DixP9^RSo?_( z($^2DVgD=}mow*9@t{}O*)C!)IqGo#TOGlZrGV5R$hJ4z=%{df9qll?RJyp->YLoN z{y3hg!`Lt4`>D$71%~&Wm+*ORs&nS=%$4_2=@e<dgErJ+VFLP(_0y|KQc31@La9af1wh>sgB4!}p{YVz z={pvBoRo5^74%ju_`wfU5D<6vix>K{G#@i2oWT9*?4O~nNx77xG;6I{tKZSa&_}<* z4WpB`!H$k~pbWxP$?2f5Z6YPc#m-62Wy`&9ovDNiRPQUypn5w*rs*Dl45ROBngvH) zm@x6Z0?5tTQIZpCwU`%ZhtO=*2q0Kw)QUqTX4FANnpnWX1p3q=w=-8zJCu6qQ!}d! z6n4{L;0eyEfB446?K-Q$WpRrq>D9oJjO*3{Wk@h9yLpOo$Bh?8Z|#t5`wrm#sk8LlN4s--~9@w6;LgWoK*tlniq`cSz>vv+R7L zjR8dFvO{>$l5Gvc*^74yX|EL1Pgc)5un{r@sqS`eMx@3^%4bOYI~k^4uQuh4Ty*`1 z%Zjvgbek*%NeP6%c@=FeUGf|@cOxb~;dWDz-F#PpI-kqcw?9MWAVqws?UJ|Bf~Mw| z)t-SfC0#Ucw)&hkWYa)+qigL}tBXIr$5(nh5E&65U5OA0l5#GwULY*4Om%UKZ8ySP zM&V0&Tc_|-c1yL<=6AXtCzjfYOXU~CnNXx#bc)1{Jr8vPsXvUi-Lc&rz~oWjZegIV z(fFrzv#~;@)2b2bnWP8QUXzYQ57OlP&z;IvcyX!rchf?-aZEqqZVa5Q?<(#LOx1?r zw!he6NIggB`G&{{zPFG)E)^5`woVCrHnkx%I5frxmuGiXpe`~I4T+$^=ltM%uNh zJWC&-K|D09BeU@NG*QXxCchDrLyl9%=8@wh;r`M;S!&}d`2S=VZjk&DW+oUh8A|L7 z5yDt&(6vVWzVt;cDn-~CN-qWXu?ueUSu9)Y$`Jx7pHW9l1~F(b5|AHC}bAw)_W0s6Fz-%_Akw);xToN1Tf& zR-3Gr`0*pnUgq8i9v-t@8RZa=eez#c1EH~=d4Bl!l#BE80lxIym&bcmJp&>h3%UJ1 z&T2>b9D+AtoM%^j@F+wVEue}SOG}%|9|qo@(5Ui{72u( z+>Z9jIX-mz$-~*zV|VK&&fpx2D!5nR>~S#t)Dyh!$Q(u)fDl-})~maU!5 zZpYsBTe;ED81@jV>MnFF3BXZq&Or(MzhbUl<3sgKbVK5IiEtkG$zc9y06lN?B!k`|g&~m9gYEPEpYj_D#WVxxmG$Fti2l*Y(98%%=}`Ks^wdz} z$f;S|tB}E;&-;|(&Mz%kuw?9QAu$ntorA43`CQjQUKvUiB1hacyXpO+csIrBntvWU z9!_D3jPF0+4iwf!I=*Z+PnK5TpM4)V;?v@7S^O1K&Q5ZwKB<6WmQYSfRbYC3VVY-A zWzR4Yw;_RFyb?d>&Y?L<+$`u?QA@pu|Mj;Ew1?PtkyCXRNP z+T{>KqnLYJDR#1v{rWRzP@%X%!68fb$a)ylJ8NFXMh*}^ddQYEaX(##1q{~~>KcC= zehY|R^<#$bmIz{JByiTrxtS0%Q;b3-pJW+~^|DPuW>@Eql0%GQosdwrJGi-B0zmlY zX%}zRrncz#99?!XJE%FUqUD|4*NBeDaAFQrfd9mHU4>h%0Ma_s?SV&qK!?PjbjYsR zZ6Vj>$w4VbZ139pu~(TgkU%}g32Op4Hi9aiv0O%AC|0O!x`u+SH;W4$B7*Yqo+NF$x4Qxn* zt<_jafvZe}slU7th#zjEQPriun__fWdYXC%Ovo?q9~jIjXU*X@zR#I`duaMo>q^P@ zF4MdL5tGLS0bc!|zd5zmv7C5E&sD=7Z2!?#a$&+;+5-w(vX4DjAhGRzKWrm9q~?+& z_E$asVz~tiFG+xN+vGo)$wJbHpV*&g$(F}~*qb=qKFYhcPn(wLg5w4mUQPTfb_;AC z<5@7L^4f87=&M=C8duNy2aeMa<(1Y15b^HMmh#J3#A(l&!=aG~&_i+^*VO>rapp(n zqKRzhxOPsn9)&7zjI5i=vy3;|J9qyf!J+k}h7T|06K2HmTRj z_-^njv`#5gyStj$x9$$t8R_Gl^#rb2W?*+B`$=}&<$DY=3jf5|C8atRp^f=$7KdnU z3n|ASBk=sjE*VC#2x$!RP`N2EjBI4+7tM|Xy}=Cnvf|%-`ONB8pOVe5(KiR*BG;p5 z35pdXmEqAg1mRKNKO72bqFLd};e(wu>rn}u3KBllBmEI6XzpyeTgO=TWt*H>&q=&(efzx?GOZ^FTjt9KLPqp^n`bOG}2 zS+qF#X%S49*nNE)?FY;{6mnP$_#~OY<+YG_^(^aK99E*=wW`KfDJwId`H>9=Ya==q zscqq>RYMzra@1)RxBC&zBQFTqhgan=FZVzPqYkxEG>>)JdJ?`Vc6+4VY!pM5ie)5x z2d@lnV2K&yMMRa zPp~u8=kdKaqKJH2f}fM}#g%unJ*s`i$8*3`pnX!L3squzfU#RlVwsIB?D-j&=$1fk zFj|4h_GB;5 zaaGBZmM6^PkoN73eZx?2f0<}!d*={g9tzq{-vfr15PWomD&4Ct7$nT#$T@-5abc%e zJ@&#jX-D!dc>@COV*}~lzGF#v1EJ<>(I`%-Lrt^MiB2NGB-k3~1@GC_ZiSjk)RTM4l|79N(1=Hm|-8;u?9B#u)jtUC_K zhE|oz8+B?vB~?B_H?`}bt*^7jC8n%C5?Bc!qPNiKxsU`1iwX6=NJ9i~?Oz|8v7bf{ zwp!tR8|m2cK){Lo#C+mwyJ7=VMK zmGlpRH&Wiz)-~x#{pH5Z-+EkIu)wKb2s%$!j}+8BBJ{7fkEj?v0RgO#s^p?@uCx3k zD+xogK%F_WC+D-0!0p-9)hpAg4^I2H0S$~T1FX4jbrdd*<#SMcwxb!P1p)#}l~Wx2 zz38_;U9@~@;rGoO=b+39Ajo^Eiw-u5I3$6=oRf>xuU|;g1-Up$^eq37r+61poO_pO ziyHEE^r(vQafHX`m2c9|K9^lg;c4!Y`O1szw|m7wwu{{Nr=QwDwLTrPBv?(|MVvlJ zdP~2eaLY?y#KTJ@3?x@)7C#iT%yxSEW`!5F5r=y+t`7jCJo@V&Fvxhk;7L|ig7ctm zH1nx*K68hf)HD0{a3A8zy)Z474>Sg^l5;(O+6mI1w$8$zt#SKEf4^@Z9oW8SQg5e_ z=CBmoEWxr3A(CFf)HgFt@(0$ShI$0yesa4@*Gu}8lJ+k~9Ny^@uh{A#)}Semeq>T7 zACs%dGHDlBubBCJJ+qHBiieOHci(NI-PQBKAwXy5!RDQX_~7A*L!)?H)3%v#M!)@; zjU-O;>*UgoqpY{WNc04*h?BeHYK@lqS zB&si)A!VM6?2u;aj4^Z9AV4ijQwj`VdjGpg{P6sp`eIP87u)*P)+|Pshcl)ihCJLv0~E$5kg0;v z49e6Ii6u)|9(q&|^Eu-4)ZrULIz}sLzu!FP9b~X0qrASZ7*xx1A#;OtEEvKU#1Git z_azBDGdMy53EQgK_XK?V4dfB5k0Uejm2k%5#N?0Jl*!6`LENyC2ez6m>SKNXa4;q1 zrONLhJ#%iXJQmQoHUwo{)oOumR8wK1gl4bshiJ!ZyZ#LP)%J=z4`TZ=*zfxz@ z`HzYu+nKB`uy>4u&!s>>q0hE&zWP*5M2^Nlw^uA#blFm_;WTyMJX>Gs*xHKZUk`X? z)UhJW{lhDLq(r+0`dt?OzxrYLc=3_{^(7+?b>M-G{md!YqJciQkI>4eulU z$CO3JHbU)HJxJ?gaw8F~AdV0Dzgm_@N#4VE00OPbgr;8b*-uPy!~ufOVtPjh>B%FQ z>fXEjWOray{Jm`PPbVz$Q`}n!pd>ODg_Q~VF*~fCCDPHhqm}#Gt7V53WQ0B1Gg+a@ z?DfzZNHQe*g)>0cTqpyqf$?><74ZOE(VOOO#~Q}YN%)h~%cR^VQ^V!Dj>tJV93zGr zqpT0T&fcXZ3y-=2C$eIYwbbyEMToF5h`REA)`&fTzY!Za%O zp>e_GW*j6BtdYX74^R7*7sx6!<#v0N9bYOXJu%p_{1JQzJ!8X-y!`PWS5rGF*_V_5 z%H0C9_6W&siFaEY@l0OmikhKF^jm(E%DkU|#AM*@laCrBa=RC>W^I>mD)5H+p~L#s zK3<&*A{OEO8pwLd39_C~ucR^SiYeE=#*#_a#$!rDygILr%IVYM@M)TE*ZX_`etIP) z;B5dV7v%A~ZaR7BDu;bP>Tyo&hGX6`b#q5jC01|; zImiNu__S4w9MG;$S#SrYeH1v>UHp%_()O|aBi`^J_4K#YG`<%J1}KmA7q9{UtnY(b7%dn zwT@Lz60OESP0#H9Z6Kl5mxhn*{5m}J${w%xk#n>aFSa{&}mraXR7(difGd2N1w zRQMdg3xzqv5bEE5t?}?1>GX#|vChI<{8YT!Xl1yBy@A6$*UpbBE}>@U8cngNK`%sd zAe?QX0e%>e#}d6riFRd16>-kkzzm&)8rG%djI>oar`VmJa6! zeef*{A-%q5uaAC?ty+1TJLI&&X98lSh6(u|cTa8l!Gm<5$f)u z>5=1G)(+TcZ@))h2{$hg5A<=5pKIwibZRBuBTWK#N2)kC7H|i-09gvDKFvh?L@(wC zB*P6#Q{Rs|mq!`QevMf1nhO@oaCO20rr5_Mi$$g|f+_N}HiCMTK2@P{Ft~*wA}-~E zf30iHBsjq{xIA0rq@9=Y_lWG?@On)^M6<#(=Sa~V{VMC^ixF!0D{ZwVqc$?tDWl-? zL^fO)>O%2f`JuewSAZMYJ@Ou7dQGebH@&YdNQ$Y5cab7Tk8g~j>8i+_=AMu{XX>q+ zKU$+D0u?ZhU^r(s3>AfNR0RWBB(VQcfHMbp;oo_T(2)@MI0fJZH$quuE8ythB^VY= zFR#&*3NjDh%zYM(FxZDL+`&n}*D=j7STh zsRsE+Lju|+0u&#_2%`y8*LigEGx4?j{2 zlC-1zobffxnVFU1I7hcvs(iiG4k<(T=>R+lWB*L%SE)Ex6u6>}&gZ`A1Q7y|f|nxV zj;n_9idbwVr^j)+vfH&_9U+OHIjARz zn&hzV!iB#?ik}npR@uQQKY~T!9%xu8>9;CBsmf+n1C7Tem9?!pu7uh6+a8OE`5fB~ z(x$FdN7>BK6lhc1D8;++0fjOL%)E1*VXh$&7UqRE4o02@s})g*LB*wX-f<0FV_3(S z;mz-pU{#AqgBgBr3Q7$;@~|wZSNt08Lt0cDCdi*Ycxtwlb5$8YA<|sM@D#!Y6%ni_ zVmT|7bISpBub75IKSnj2iSHTF`#-RL7-G7!R8B5P)2a}yY7dFS$CQUbta9s|Zn%Tv z>fLIglZUJ)n(V`@pWJvqS7}bmsDH_mw|7`re(D+a-3QtdhOcY=Z5~@sW=`q8RQVng zq036KL1A-?3lTu&5A^8?I>$R;te0`F1m}+VL-H;S=B+b57Mc25wv`+zjH8A46vVZ&dWO`)XP>d zxck4h5NBDRd*~Zg-ApsZG7x{^D_b+h;+8^w1J1_PrfL`5&<)TB6OAlBb*XIN82R&s zHYp~_e4nl5sZC{#XnOy=h|n}51jS#2JO5a7yxh>F=%Q)yj96fI1xJuHxiNE-QsI73 zbwgsqRIK31P+V~K(vx3}GN6OQxM8Bc#S{~-!ICbA?)hDOQA3rwR`2$io_)s}#1r%Y z>1)~NzUPcTt{@Q(pv}{^=~#kPz7)?pzQuILx~Um0z$Jk_{P+JySM#Apm6~n%e*yFe B&fJ%sffG|UY0z(g-L#u#*ln6+74k6uO(G5d0baxCn z#CP!C`>Xf;{{Nouxx+IvXU^VhoxRsyz1Jp4^`$&9Ar&DO78bF>bD39ISopvtPTzGL z;7gkR1vc=7?f6RmDOOPr%_{Jt1*)ZBs;rE~23%jqBEY_jg?rTn_`|}c`VD*q0>P&K zaSXiFG_ton;@Vn;{N9vrw{0d#mB?PC&nWv#wW_a%O}Ps zD8?g#MSb{*2WYxs_gvc%3ybL9)f*ctKJh*l7H*k^hL)3-vXYpwEsX1piLDWo%ME6C zg$YZ-O$@k%L7m<(xWTM#9L3x~jK6z`0oPZzxfvOLcX6@;F={ERGCZ?&fHDYi@o@1l zN)j?KFi1FdNKH&t>ai#?31#D$32n$IZvb3H0D} zbhmMOrPCikM|1cRRkFXdIFqA)#{Hy0ba3}*@WAeu7&3~}) zbMo+V@(F41h>8jFiU|Ne0fzlImcRA=3!W>wifO%qI@(%0Uva|~^?(;Q@71RS_y1`A zC+MG$U>gf3NxpxB{NwgNp|t;O|KA??*XDnMsyJ9c0iOOnR^ERW{zUkNBKECrb-8gAGdsB2%Cmc5qUNnb5bM(x{u;SW^k z%KT-b_E`q14Y`GAsMvOQffcLlp+L(A<9nyp+mGE~isaGEY!OD;5$65=?ktLhThp&4{fxpcdZtHGac^Y*VgizpIXYj@P%SR~Jj18Lb zl@#7>X)Nr&e9YnCebc-4kIrGY8L(V_S!93u$9S)Zv({Aq5C8kNxdiq*GhgcM%vVf*am#^T zejI>nuC4m~>EHZypueARoir<4YQ3qwsRh9%_>XqG0^f9f9ba0H!#t6{jbw%c8|SrI zlC5RP-=-o0@x>Y~$w>}o`dhrva~B8!hEK99|K{)e8slFFP_O;}jrvPd(ms-+d#a ze{vO^f&r`Oi2whY!B1v)Mjs=N;#L1Ker&t~Jkk?*)H+&@dv5mOb)vs9A{I{QLurZ? zIk5yJ{@>~G?G?b!p90AKXLqd0=Vnp0|5#5g!rNH717C6ejwCe_ARhIq^(%_M6BSz# zkRe4X$Ul$>e8R%EV@gt9d;2%hVtD;n8p~SYC*j|b_{rVf5qbs9CAtz%Uw-_z#y=ec zk9vqV!n>4ZmzLB0++%0=T+zp3b>b?LIbP=$0d-uq$1fXp=YAn{-(@^&EJ_X|&N)hU zl}&>Dii>5gkh|im+$Y%cjuWO}j;g#A!t6KIM%kSL`Xy8xk7fVGUo$d(J6*_?!`9YH z5M45zlzsP&?Rr{})x}Ik@Ozc#g(t#+KA4~Vh2dG`Ww6b5YRNrTx)dqFNGM*%qg0H1 zWZaEGfrdibsbLqJ>d*Z#1-GSB$?kic~(j4Tp-Wwx7Ri@44m`*k< z?r#ZhpE&i#Q7o3(b6WFXbnIXAIVkMP<~W{bFez zw!Ts~v$m*-ntMfbgBze+>H|DdtU>(R2R#p?rDr&SSuD&LA9Za_lMxe)kED$I%vQjx zUc#-QV;52qf3q#2Cmeb4v!y-lE2G%_bz-2GFjv7FmkwZrng@z*vZwD=ic5iP+D+2HHdMctH+32ys#{so4X#KXJ7?jpd%E1x030WoeIm`oh9f;<)Z7eu*LrWdlio?%Wp@t32P0lEOfJ z%v8o>7U77xh&tQLI+K*MZzX;~NxH+6XKJ7({i0_YjPy^kWSiPElo~6Outf5{kKRQ5;U z)`g9UO}3u=1A0KJok}(v=GSFqnu2Z;hqtmV$G;FZF40=)7T1o$42iwWr*oF3eUS+Ls}9_GvYwd+q9rKy^>FB2Sw!h9I{8_=Ii zXjPz_amB1dt%mSy^cj2XyY4b{$r)W)vEEo4CGhx18NRCywA(m^!tm9mpe8=LfGd$9 z#Br1-(V=DL19`8EOzU4>aO=P#%uW}qCRhyM!gLYR2WVMR4G5m8oMl(P zSWl@W+dh__GpwC+XfrF`jZH~#JE@r|$(ZWl>eeY=C{36&Fq9O}h8Y{ayoh@_Ukazb zFKJX^Y0~-Ai^4$tup~*&RjXxapGkgG1p!t=L~YqvmWV~<)MUjd+JLPGuFM#_-#qr$ zA@WQnV0Et_kJnjuh#riG^~1s~B~%h%8=C%RIkzrPuL(`Kc`6H8Y5PmB;t+BVik;*v zj#av-PmHU_pT;1H8v`T<7QO|`GVSwIy)_>j+RjHCuThn2lT5J&XSU)k-P-K`8O7=~ z*9%hawpd(%IpcZidqJ+f3ZGtWD0WG7${r$+&Fm$iyLnS*>Vx%`p_)uGcp@v$cC0H| zvy`qVud38I01A2(1Sn4FML(X5fs=qSmYudhMzUwC& zYA$%M@WcRx?R?Pk`8`^e|1N|G%<*Y4s2Z)zKNa4vgG5uigdbbxhxe3LW|@%s;pGsS z&rOd#i}_jOoa`{gDAyz=oH0>)O=_MSRCuQ_(R+_P?}C;!X>s$bC!ew9Q74pUO2M!Y zXf*??*?MSZi8E-?iuF2$vU~64T!uGxYgQDE=f*gmR}|`2zx*t{L(`?ESCF6n2Pmuhi>0%4ZR4XRfs+%u#9lMyG*LGZI z?Yt1suVji`((}u0ant?M#lrsNGHbgn-k?GT(W>k`|5(JkVBlUaq%i)#nV~yovgu^) zyZly{f%PB_YOgJLT`Iy0=9d>GUe)?`A0mE`?%1Env1KMFP;S&>1$fLfhleHp#u5#{gX&#LTg?F1(3Pqs9v!DDJSLSI` zF7vLm3q|spUCuI%Oo3!y%CFW2>hClBEUAk-khxCSwpJcTaWRHL{ol^2584h-==FaV zcGGyGEHPVy!V@H~%qy5ye>)@5KvuozJ)1k@*Dp8-+Y=^GH&h)b6zaTEWV^htm)_D( z>$wsuq+OE`KT?m0S~D{*BSu_V4O!Bax)q&-421f}?r{mtJm#^lQ{~f@Si_hSf-AQr zl@X`nLgs}mn{xJbfpXv0>H5RU-tETo?Jo1t{B%ns=n(0pSX@13iJQg#RMKr^6aKc} zGyyE^{mT~A|DiifC(Dclm+4(vkTGB~W=2a^Cd-S3UC2$4gR9J#?6({9zBxct(h*w@Y@*0XX$g zMa4?Kb0C_QHO1J+uwdn#WvlEZ#{@;AbF&!n#>2#dguI=yYX;nCro{N@Mz&T%H!(qG zXYFSSt1Eer{kb$R@8w`GfBa(M)_HhOt?e|MSmh%DYb)9?ls%1?37wS|GKeU?bzYT$ z@IpO4WldG3N!YYHD=mL43an7-01g!6f^d4$4tVT)6d$B+dd>%ioh@Axs=En-yJ7;= zVcv1XQYRB9e&<4>PDv#-%ZZ9Gp|)B!@*7r__m!pje9*7Q2~Hb6De>N{+S6QK8;)L& z3W93)6%PTHCmiJEW4iga{jqwomnzfn%C$IxC!1nkj+XbTe)NN+j^&%Xf_~(Z1A3us zBVRYh@SrHMd5~lb5X5*lXDbu<h+=?_o%km0uxAfb z?}c}_hvZ<%Y=sDfyhCvSYzc5vp>7Kcoh(+9sw4&bPH63yym^MtzU^QrH1!5)a%U;ah{rq zT0zTL4h=m~-wmN8z7^*s%XDnaSjki8uS`t&*6pKnSN#hhi%P|NtS=Y)8~QUy&iQzp zWK!~$E*2Gw-OP?C6C7g(Epb8TMKyIpEy<^-asRTaDob#EydY?HEH84|TdH!? z9&_@3@Nj4$?mSj++PR}9>(X+Bgh|=SePis}k9$lO@+IyQlTAirf>ka_aPM?151+H4 zI8bpWtk||MO7bG-Fv|Z+WE*vr4>OO`BWFYZ?>U}Z+) z*Qp|yT1&*c^YwBi;MVu(NG*QRsYfoxkgW@pyg1UPsB5@DI$@v{Z|G{5J!EOP_;o>a z_2_(8F0YBu#b6=l4>f*Xf!h~0uNTahX7^P3b8NfoB*z-LFnIiYKC8Bk=Ft<`DwqDJ zI1h(`;AI4DdZMyCSZO-ArYqTxG&}nIe#ky*HRMA3Wz54~{Ls**eJjIKLUrf5&2p)W z?e_3D$?hz|6RxdNy4`n|VVff7Dvhtq)h!RC?1O5}YsEuvM-In&j73**)QKIT8ZzaK z9*BrZ)Gnr#P^5(656(@N6PGo?41LBs5+u{FOJFQRkhOIjoNG_`fW?EP4jH=%`OJ2T zJ)gt8#I}>T4S7_*V|W2%ahy5(8fUxm^e3#-yR}}w+>F!D(T{*A;|F8B&ni|nG<4v5 zg^i3to-tT zKx{@^zGai&fJ{+Ex$YNt0YTg*=0b`M-sKZp&UqlPkvwq;c~+R6wR{3m8L$j6LEK6| zF-c!RAJ|@0P(>694L>M=Fb}XAPDeVwTSalNhy9%F$Hi@inxIULEO=-7IAk?Fo+^1$^+17^$_%?I!m2t-9ZaWt zP}3)Mb5uO)W$L3mXA8Ek)L+GBe5WDqgn&$$`F%{Lfe6j&i4-M&3e8JSCCZo~oD<|W zy4>+`73ZsvG#Avnrn4%hCX7Olv<8!P)|OTb)IZ*@|9h#4pp;uR$H_y!IQmC>axIY< zZ@%5VGTB&}-lA}8ukuus)ohubs^6f{u)N&hoh)XS>3lMM;=T5&6Yh^quie#^h;#5i zE>yXtRLel$4eOucX1E_5Y8nGxSLRHcq@z*-sfo)FpR(S{&tY3a_$AwfZ_13v*+9NYF|P)6UB~amx-< zsW)3##W-m)7SD59mjeQL7GhbEb?zi185kAHV; z+gU%ZJbjJgbzG7QMgbdPX=EwF7N%XvqEZye8J@ph+HD`A4UG@nss)J%#;8!HNA9H6 zH5v1N*5t+iI@Q|vd>B)+(arCQc0r?U8iz0JvI>$$E4&uQuJMQK#*h+I2mt9Ap=K+6 z=U3XdKF0^;6h3pb8lw@o1Q$Z#F(PUbpg3#i735wHr;4^yj><&W1q{fWY&4q{geAu` z0y8h)BR#5w4z(QFD^!C@=sb;YaIN#6?SvMx^U>LL7?|R zA+ZnIaMGre_4IBltv8x3!P~37bd?%{3%B@2W~iGp{!8HgM>@Zr#8uWBuPh3IMz!9P zSj2PtsGvKb+Je^ow;9iZDxWH|*PiO96ijM-qwHgpGq+<)ciivu2alBZRLDp3j)QA!p+<+EE6 zxLu2~EG}85x6w^HFYTISrutIm{kL=H~%r?zvo-dJKmJWf( zr?OUk4)D`&_>oPIhkK<`Ui(y+!zC~Pjnmk~!M#?Fmn1hpErU=*(q7it1=?=$fW3F|5*}k^}mSdBDN$5u3HM zl&py*e#V>jyi>%ea$;F(RsHf{m$_Bz~?!IiQUmWGksq*l>&pARH*lM~RDe6jC( zP+YzHt~PB3ra);jAuv?1q+Y*uldj= zCH2I&|FW8h=~Y@f@oji2iQwHFnonK-NK{70$XP-zX>TFRhAzZ8_P77)xRE2e>|B-Q zHBUKph{nzmY(7GBb=zIMUP{ETRY2|ye>BXyX8yI4ufmc8$oG%|i4=ry*Mr-+H?ToB zBs^w_6CUVpDAw#{lOPIvy%QG3(^|JmsP+{moRYlS_pGKix7QSHQfgDRoSG-5M_ez! zr%9HBLypJo(?BA_U_GBW50lMB-*|*M?2SLvvs(;ax7imki|f#Wby6+q_*lY04!uWD zqg+rw)Jb$YO5dheRC!en8gVhpJ}z{xQYO>?2xMkq^mSBp#cM7$k?p-rM|KWg!zU_IQ_{1$*|XqlnF}ORTna~^W;2FP?FNPi*_t0=CWV{p^@Xc zd)cm+1z~aaX;b3nl}%fUclGIjdh-c@wgv`K@a8W4%d=R>SP^E%2WjWjIzkmdb+TU{ z>*QJdky$YNK;NyR=#70=vA|7Krq<JyX`~f9rwA;Po6ItK66sbXw2fotGc=z!Tck>s5 zq(cc;G@q+Kh&p0H^t+GaA2L}mS0UdLs8d#X3l!~t?6$H!{|rVabjeFik9h5bG%OoN zD=Fyq*`7vnlH>q3w1;lWSSo6;)XGNx{2F~H)j11)|5MDVy0G_NZ~SR&4hzKG{ba(n z>?Bkx?OnDh;+}BjK_v2XIn-Hia!3BM2AE8#TvHyktBsh|pjl&PV_060MQ3f@o%s98 zib@`c%4#=?b$_V|7g44f?X{=O>C^Mf8WCePeYo{?(<4deHZP5g4`!7(qq!~yG7J~% z_gY8_YgaS0)2B`D5I-x?>;1to*j`?ak6Ep=oGnX)%nVFhNusM!S4ALYpV!=JrfuwNkqk@VbY7PSvFx3g4&HlI%T#&6xXZeuX+Nx%|Yh@e-Bw0f@Y;FkJQ7A80$PLry((lSF7`zb`1zUzVMvL?Bbu zsijT~hn|d-zRwo5K?RuBP_UEZA-Og57x%xbnmH$QKh1C<;U57wEqkZAaA5EvDJR9Y zqBvPT$&>S_&&ybxBe3b!lGuCjMcyj$PEco}oMgq@#^j4o-~keXcg5E%{K4C2Kcggf z&8%!O^;;QPOEG#jZJm7D;^eF%|il0xUc_}!^njifj)(_>I-OgPdvcU6}rDVZ?Kyr#-( z0PnG+#&oG46y-U8WKN+Y!3hlS&Q{R@|l@BV9} zdw5ie3>Tl5@HLmTb1sOAInA*igszE}*_sV^4Iz|ipOh7qDj;!RC*>rWReV1lZsljn zjcX7uB&bo7Tszx%?8!DVMO1uv#978B7qq&S9RoyVv0oH|>aNKXzz7V6AGeKD@Gd_Q zMDBm;v?(7~DufN%)|*$vII;T;JF`}C7#ddy@uMui!C;heosu-4A%F@IE#rbJ^!pxm zD{AUO1$|74vt>$k5Ke-3bcsnv>a9chs>XzC^06iD`L7vP#eLJebSW>=iY>6MA*VVn z<)FB80%XNs0%^@e8Ec?EfzaG7Z3!CFboq%4;#fkbq}M)N3+0; zl((51x9xP{Tn<{;{6 zF_ocTtU#A05ccdA(w=hHOf8lqezml2Rkww;T`sftO*ZjOD^paKt-i~5Zz?Fw_wOwQ zkG)XYt~=IAP?D>ZFe)21{rK*p-b~8US7macGp2jywC%`n?-upXbWOoSsI~x+I3Sfz z0OtYUzJwQtm~rOtbf`k4_4X5+UO;)*rqXo|+_;$;m|^>gQVs~hky}37Q4HO5C8Vnuy{00g_n3z;8RV1*7En%nJ`+ zWLp(w05g0Ei1YQE^e+@=VK4o%vs^Mlpj$Q+Sl2jlXLOD^%!ae{9;3_*3Ld)@I1Do2 zK<0_eYaJ>)O;Ku;E=kebuttL8Ut^wwE;eGVOZlDov1UfbhA}|0mlEgt=SMS~_C7B1 zSbkz;=4-mO8{yTypSSN{19S+HinjM)rL72OR1wGHP%rHm{|`z)Awmuo=Qq)yQ7pdz zvadmP0)E|}(%}u`XZeT-WAnB5c}}FttL*~?tpnC2hl4{VD0ab;nqtQN2Nn^9$PA7S z2lIis9{*18>DkXh1ZPUHK)04#%bpoJT@`up1l0J$#$dwrt1xG>wideAAxlMOdkIk{ zcM&vi`E;gh7hmAp)G?8Y8RzJa4S7v7{b<3GEh+nK3r9o=uxYJrr4KjyX&94rFA^8$ z`T{9Xj-l|2;JS#~w}~-znG8LSyTLuZkTG^oBO*H!myWdu3)#ucvKnj^V#;KMzC`q& z*()@%xDi!37Uvx1tNN5fMB_Wh1s#-?VGV^Y4;lt=0H>_TiS``jm6Vfc=1hvO6Q3^z z+w9tkE!--0PJ|~HmkGl>5LH*CvpO!(2+28^qp;D!6S| z>#H1I-O(>&s&c<&I9u(9p~Laob}>@AFM7Y7)ht1djM#i>y-kuBEGf!bwd?G{8aqgC zP4G#1;!_p)Uao(y0~y^c!Gf%HnZ*)!{xTtFR)6z&BPd>x1$T%avWX zvu+D8SEp{EUJSH^@gCmouXh-*D!;!W!?{k%ayz+lLrzyq&fhxeFtv23Pq1TPB-$49 zacK9P76d`8iGd{epCv7WOq@i>rT9G5zN!2zLw-2QR-Ix)_mg^+5{K|N)}EyVA*!1u zkQ#}{VKp3`KV`YDGrWECLXEPc)ERy{*F-)M1q>>b>Gi&@(X7We%K~*pY!x#w z^>b7=C%f&1)?i0yUXuc7ID8gg{+jV=KKrbol$c3F)tjiAfU$}xHN$!r%=m^@5jeTX z8&ROKHG|Gs`|&m_sB*@DkYa)jvI)kmxSd5x;nPD2foos4d6E zk~#%j?c6il@AdP3U^)y;6Vgi%h>NY_s0bN&bvMaTJ0|^CBQRI)RG)jDeI?x&_X}jP zu$Ql!-@Jbw{NnO)gR0NZ^>vBOGY2)dc%ArDO_yYMHB~bky4C}M#w7z_SesmQxNoG7SV>p<+roPiWy zRdJhZH?0wlH--rvIv>23BPb&WLdLDTtb%dkXu09U=-fIo$#reZ!b8SC+)Yl~N~sZF5=l0`FT`EysRc*eH-r z3BEH!Ib(zzy>?ZnR1a)oBUlW&ru_OWG3kRa0-9uc300@cabCOfOq8OiQ`XUeuJF&7 zTIjQ`rsqPUq{6e1i$K%PbbP?Q)pMF98tok0hSa@p31l^N_qJTFETDEubV$xt z@2KsNEV+`P>2iJ#!;)g}ek)*Q$(4VFU1x|;2TI6T?@$AV9~M1D9z0yDII^U696T-=}+ZBn66KlK2+05({!%6Y+Di@uA7G9UwH%d6A z^Vky>vI;R+%q5dj> z-^LPdanB^bjtrJ=ZC{2Lurg9rFCV6&q&pV#WY@=|yoT=`-U7ij@02-xl)Q|9KaI)p z6pRa@>$TDM2nP3?9@a|$TgVVA*nrt#Bb86>z}({Iip{iBSo4cd6xvs^GQ`C5aVn&U z6K&^3p|82Z)xHUc#Ym-TRPSkAY@TM7Qe!Q%_Ot`1$a*P9Y<$_iT1HX4djg6JzX8?g z);F;netB>lYGW(Gyqoh}BzcNdWqXgR&?a`8*7niTPy|lmSb#*K2BDwqy}n=dsO9?Z zwVnQxF>yO;H+ zeDL;?3%sb`ZF=edok(r>Zj*;>S;^Nd4``IGc%{c&Xp7Kg1e7lJ^Eky!to&vQ(~A$% zNjK1mu35@KKj&L-P3|7FofUKo#UV@&8-#Y&>FX~-xwp?IE~}SyeL#R?za*6RSbz9Q zwGg$()^{M6q=1?-)sAA_yxh8^Cc?L_wD<^)&w0TguQMduE4_u8nqHm`^73BkYqY&o zc4~1rH6+GDO*}eJA^!O_P7ZveSD;}f(EzL?m}&1gp{}>W<2FO#L!vTzvfDg4n?+Yn zz`Er6Ko^`@9bHkgU3Y10^V)}xdHJaTPtHlqHTtu$HuWRz&6V6vzMT8iCSzHw|#38ouH^-B^qtzqy;W3&*b+PQP52?I=%oGeC#I4lK z5E(++otb|X6a0)mW}RH3-#aZ}$&$M&AcixztW|70ORy|T-74Gk9y4j*Dty@8Enepn z%R&QZe{g=u#D8yof{uSOd5O&GU>ZHd+DLMfUKBp95)!hUZ2q#(P`eP>@qq#!DvV{&;Q+;rj%+LE?hfhvSK#5g_W#^gv zK)9yFv5ub+-gSJ~S{Rmf(q7YLPH2UDwq=k*Hk3dJT zZX4{c5K!E{b1I?CX`%mSNTwi2AnanR^;y%Ue@C1t!soq!DD0AX`?;cu*94FYKSm}E z&%eADND{v7CP9A7LwCG>GbsqyU-;Dn)Kdj}JYNn+er_{ENVA(Pm=xzbGx2>+` zcx-?}-!opIhUnImYwKuCAQ?~2-Bs_z4}7e)u1IJc;g8Y=-$s=Kn(a~+XN$1FM%mT| z3wgB}ME3mB@gwcsYwwJ+@9<7r^COFWN3B7@<+2 zkSd&mM{4i5;dH;!#jOrrUzk*4_q-eWfEIOnl&BnV(DkP+_ z+nb)(9Yj@jr#BS>gcQ63=dOL3_PU43vMh08q3j8+=iC|UymM;z`!C@d<>+S_&j{@g zauN)u!nnK^<0Dm_Y=rK932`mq<*cL2-+zh;7#wtP0aP)>Ys!>Nm1H?fGPafrf$KO- z{6a~iDA+IBJ*1U}xQ2x>Tj!noP##d)oRlmQ94cK%OVf6~c_`amIhyuxei+q!5OPyw{gy=?k&^xHJ53P|$PAFm4Uo#3a{ky)nn zTBlb9>bRghbTv~gQo#A_zQN(s zdJX;A)<1Zta`vWR@>REpOXW6yG5$>g4DTHIrr(T5k!dd6AxzLN;L-z2P~>i6P^atoOgE; zHKL52$37pu?VoRj3<*oX@3S3oR|A<4U2xjQDrnij#y2Z`O#cw|3^s;vhO5SdpA?FaXKx$3Sy?mnb?FMmf_3c3%`rJ8h^ix(eTRGJUn2eMZP!WTyZg2nFB6p+c|$jQPA_vLk< zPG~FRvaYy+y%!W8Q!skG%5Cv5TB54AHqJYcv+3d;!sgs$xZ;JiPU(Opm{GsEtn4tSx31sw@RYVp=jCyzJeFP8S` zcq1p~yypavW#BApNY+;R?3S!@@_+sp0G5#FT<=gblVHiOMKWRUYOg_Up*WG{(()&E z8~MT>lEO6&HMVnLJca3`czuN^f_u1{zp6gP(b40>->_vKe=!YedO`QO9@t=G!JF(Z z1Zt}~`7|SD4ZPR~DqI9q@KL=ePt`;A3_A}q z&jN*hJCSc)l&lK^L&;77Puo8LK76}T`gIf0?dxKn|r{$MOOB6 zK4IOln1^6SY2VZNpIJ0T?u!A=KF2A}l%GEZZKatnEEJFgAL+Z4nVPaO@0V^M!U!z! zlBX(ArW?CR+yj01JFa}>XXGNE0S{s4vy6Az+!s@dwvSfaH-JLDoV#F~8t92m_i>i| zvu-)If+gEd)yLnLf6akizRV7ZBHX|n2R5*qaO@q)KK+zmOUY8!Dc}vjo~)D+BLb zi()bK7J>!j06vf^kK>OpN?RR>%?Fh)?sMoiOMdP13+{0z$*#8S@f$=(x42?-1xT-l zl93avr`&bEX#hvT)~51mvR`o5vgpOZ58Pz~^0Y0GjDkJOV;|#cjhSNvg`JO1G;0&$ zpBX>1SX2Tfj^B^f$4oJ6qCUlcsnnYy%I17oB?wDraWASqA=zKWNz$pjA~|{X(@wE> z@Tn*JfUQ|qo?7QdHIHE?^sIp3se%r5NXkZmao@*yH2ljH_g7=OyIygHc8{T z2_l)cAIFcs&MCrYE=8*ogVN`!TG9xYV&4^2rcHEyR}l2FnxhOd85cz8Uf0mV7Yfgk z>=WD>VEWG1toIQspWvk&o$Lpxll{2Dvhjhw*uL$B7R?fo`?Wned=2wxzp zd*^3UB4`J0;*#&a8sAujO1-1arjr5Gz0Y$?q|wLrkI~?AQychnu7$Fx9ErxdcL>Ks zFB#E#EL{X?CYQynw~Y)B=TA`;k0WjRr8>z#W&83Z zO7-Y2bPsIp)}Z&^n7)|-V^uI6FX#T6&)m{Al28eFEE`>jTzqVyw!@7cN|ok!5T2 zok1GHc&0Z?avj;~#ukM(I5Sk@%%s4#8MEDjNXHTr!Yp9Js%#{nMgHl%R?@88=z)o`_4N(Nyl%bWijivpTcv3< zN<}RWE)&Qq_iVS?1}O8TN=inTyR5|cQI(U;uQtK+Yd)%YX;w-u7?gfX_lZ#~dZKKm zx}8$(zqd{VaeXUy(2%xTN;bMq5V2)JrCiup8Md@&h2HS3^@%+au+xqiDRXfcB$eqr z-!f=Yvl5nk$GdOdM?<39YpE~(p@-`R_Sdprsfs_(;%Pnf^Y4k><@(Yd3pW9d{5|H# zBz&~8xl73|xZ#+uvqm0LRd7$3j5i$52pc}YHKpCQ+(zijK2-jxcXsS|0rtO-^#OS` zX%|rSnqwW(Z^Y_8ylw|;H32JV`8E@mriiJWQtU-KT%=!Atj2PD!R6poUfaf;b)jxO<{?e^>*L3e!5Ui^T7$$_$QK9RtyBL07!EVPU9o#r9k zt#s4twux;~dUZXAN6QCJ#Va@$EPUD0I;V!VdUOgd9+%d*bjBy2dlM-CqgK0bmY38d z#%=Y{R#M0s`Lje}``9N(_noL2?cX|uIlT=Q4+tJ!NnABFAJguV<{WD;^GJLM`rWveX>DV|&ZnC;KjN=o1{|3rtuv`a=w77{#0L#?yA zI!y;UwK9vvJdF#9n}49tB9FLh?TMcDPx_4L3E?&pTK9B!Zk&5#x3%$d@~L=v^*pAh zbx!%H-Vy>7ubHY4xNg9@ga#CFPGLC!Nw{5AVw% z#v_Owr|ffbRr8xCld;@*4@8CjobkIGxq*&Vy?u7dmM=AKg6&A7zn9#;(MlaPQ4jAx z(u7pEJT(vE0@lCbc~V8^2ynv$X_ACnT#MxP_XA_iqUajt&$U zr*jDUvLCAqwfShnno6m{e~CvepA1O%P<6R8ypC5c;UdpDpYr=qy zhLI)rG>t#cK^{DeSjn!de>|mL)uzQ6zQ$%&!RCqyg%q!w^GxLkhbOIh+yiU(s!_=2 z2YMd#6=yGZOPwkkt*TA=rLMXr;5#=!MCTh)QAH6M<10~?2VYf3IYZ&Occ3zVaHcd+ zueo+upFXBFoh~oUe*c^Wk@*PG4lA&5DYgvm%|h;QhZgDS(V8(9^-I7d&ARof$OZ6@ zp6AZ^wIU&fqD7@k3PzlO4>`x;J)nDnPpzYxR~urnFk9mniGc)3&*| z*s@LR2_F}gx7g&HZcsIUqk>uGNlDH?G6?kI6GrqkNX-2k;pA1nBCpT7p_@6xd z)prRq6jdcCI9e=bbaeVLrUiaqtK@~fS5QW_q7T%4m3Qu`nci@&$te>SSBTFT{{t*8 z@yC>mf1ElODD{okjpgb((zS|4eyj-gqt3sh^~7Y>K9kW?+i0ICK1{?_~RD%zwB5Ac=^oG;e6UmST#N<}(3* zV^aq5%VPK%n{KG{;r)&VUGFhg6rx?)6n0b>kBZ zW>Yp5KRMHl_sTj19`%{yZPt;7U`{S`R=q-QA$CM=SOu>^~ zk}3V${GQEpihi}G7F1kLhskqnkoE@BZ~1pQ{po+0-B%9C+o|}K_LcO6u&i$iX*oM$ zIIOPc1|H4m0wf4Zz%2gf8U~Q=)P=g(MjCUlM^N8rCU}=U$CwZcS>wL%Xwf;ATa(^i zc+n*^F;QSS*n9T1`}9<+A~o%j^do~1v4#*WnX!T(czL<#2QCY3nO+o6vh`}E=Rc7{u5`v)CvV|EIo8OB=(Z)A4>yXqwg zPGB(XC%CilHge6tntyx%y#M?8v>*8Ga$Pg$%z4Z) zGsjlKA;FUkyWdsew^)^XavHX|A5g7nIof2_^D_GOYL#*Vs)PHDhA|Xu=r6{6#b$

v_-mg-B8!l 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 literal 0 HcmV?d00001 From e1073b85e2fd5e17c57cf11e2eff4595b2ecd2c4 Mon Sep 17 00:00:00 2001 From: Ryanmt2 Date: Thu, 26 Jan 2023 22:41:02 +0000 Subject: [PATCH 09/19] Update alexa.smart_home.markdown to fix broken link (#25965) --- source/_integrations/alexa.smart_home.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index 633f81e567f..adb09ade66a 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -402,7 +402,7 @@ See [List of Capability Interfaces and Supported Locales][alexa-supported-locale The `endpoint`, `client_id` and `client_secret` are optional, and are only required if you want to enable Alexa's proactive mode (i.e., "Send Alexa Events" enabled). Please note the following if you want to enable proactive mode: -- There are different endpoint URLs, depending on the region of your skill. Please check the available endpoints at +- There are different endpoint URLs, depending on the region of your skill. Please check the available endpoints at - The `client_id` and `client_secret` are not the ones used by the skill that have been set up using "Login with Amazon" (in the [Alexa Developer Console][amazon-dev-console]: Build > Account Linking), but rather from the "Alexa Skill Messaging" (in the Alexa Developer Console: Build > Permissions > Alexa Skill Messaging). To get them, you need to enable the "Send Alexa Events" permission. - If the "Send Alexa Events" permission was not enabled previously, you need to unlink and relink the skill using the Alexa App, or else Home Assistant will show the following error: "Token invalid and no refresh token available. Also, you need to restart your Home Assistant after each disabling/enabling the skill in Alexa." From 0b2860f99acbff3bf91e105143fe7f5933dd5d43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:11:00 +0100 Subject: [PATCH 10/19] Bump webrick from 1.7.0 to 1.8.0 (#25972) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b724f0bcf29..562d23c69c3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -119,7 +119,7 @@ GEM tzinfo-data (1.2022.7) tzinfo (>= 1.0.0) unicode-display_width (2.4.2) - webrick (1.7.0) + webrick (1.8.0) PLATFORMS ruby From 5a98efc0efbda6fb8c3363d864766b4acdf5d736 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:29:29 +0100 Subject: [PATCH 11/19] Bump tibdex/github-app-token from 1.7.0 to 1.8.0 (#25971) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_prs_to_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_prs_to_project.yml b/.github/workflows/add_prs_to_project.yml index 51ac1f03d3b..e6228faa6c3 100644 --- a/.github/workflows/add_prs_to_project.yml +++ b/.github/workflows/add_prs_to_project.yml @@ -13,7 +13,7 @@ jobs: - name: Generate app token id: token # Pinned to a specific version of the action for security reasons - uses: tibdex/github-app-token@021a2405c7f990db57f5eae5397423dcc554159c # v1.7.0 + uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92 # v1.8.0 with: app_id: ${{ secrets.PROJECTS_APP_ID }} private_key: ${{ secrets.PROJECTS_APP_PEM }} From 0d5fefc03ce2d38df3bf6132561369cd0c55cbca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 09:36:24 +0100 Subject: [PATCH 12/19] Bump textlint from 12.6.1 to 13.0.5 (#26013) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 759 +++++++++++++++------------------------------- package.json | 2 +- 2 files changed, 240 insertions(+), 521 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c81f9537c9..eff1b1b9e66 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "remark-lint-fenced-code-flag": "^3.1.1", "remark-lint-no-shell-dollars": "^3.1.1", "remark-stringify": "^10.0.2", - "textlint": "^12.6.1", + "textlint": "^13.0.5", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^3.0.4" @@ -228,89 +228,59 @@ "dev": true }, "node_modules/@textlint/ast-node-types": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.1.tgz", - "integrity": "sha512-uzlJ+ZsCAyJm+lBi7j0UeBbj+Oy6w/VWoGJ3iHRHE5eZ8Z4iK66mq+PG/spupmbllLtz77OJbY89BYqgFyjXmA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.0.5.tgz", + "integrity": "sha512-BiH5QOKDs52WR2Q26POwm5RaNs7hnU6TCrkoo4uECZQjjDQoaQWsp242KDQnvbiGnkj/a2xl+XPMuFCyn0XqjA==", "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.1.tgz", - "integrity": "sha512-Gxiq6xmDR3PnX0RqRGth/Lu5fyFWoXNPfGxXTLORPFpfs8JKPh/eXGhlwc1f0v4VQzPay2KwVl6SGXvJD5qLXw==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.0.5.tgz", + "integrity": "sha512-aUxXqRJCr+WPzNwjHw6oBLi+R1mH/PUODXyScOMUR2E57zpb1teTNX0h0aI+S5YgdoyfXW42LMS94T3hqhxJsQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", "debug": "^4.3.4" } }, "node_modules/@textlint/ast-traverse": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.1.tgz", - "integrity": "sha512-Y/j7ip7yDuTjuIV4kTRPVnkJKfpI71U+eqXFnrM9sE2xBA9IsqzqiLQeDY+S5hhfQzmcEnZFtAP0hqrYaT6gNA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.0.5.tgz", + "integrity": "sha512-ouAAaP1o1JbHGjmII8TH89/ldFPnL7SRVvoGIQPPSfPVdyAGXHPGSsjoMYzcRxAdv4i5f/jJY/V7uHMMptWJFA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.1" + "@textlint/ast-node-types": "^13.0.5" } }, "node_modules/@textlint/config-loader": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.1.tgz", - "integrity": "sha512-mvChF2pFusxyQC4gFzIgNcZ4izUt7ci+JdXZtGV+DOzykVUuGhgGo3TFTi/ccgYyqZdq9MxJG6I+dvYB1A2Fog==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.0.5.tgz", + "integrity": "sha512-rxPYYE8iyZXief5kHwzIZJ+x0DTPvRj/pG8YJpX9A5zO4BTDLwHmk4NZSAF+xEpR11ebN63ystfcqMEEaOMj4w==", "dev": true, "dependencies": { - "@textlint/kernel": "^12.6.1", - "@textlint/module-interop": "^12.6.1", - "@textlint/types": "^12.6.1", - "@textlint/utils": "^12.6.1", + "@textlint/kernel": "^13.0.5", + "@textlint/module-interop": "^13.0.5", + "@textlint/types": "^13.0.5", + "@textlint/utils": "^13.0.5", "debug": "^4.3.4", "rc-config-loader": "^4.1.2", "try-resolve": "^1.0.1" } }, - "node_modules/@textlint/config-loader/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@textlint/config-loader/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@textlint/config-loader/node_modules/rc-config-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", - "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "js-yaml": "^4.1.0", - "json5": "^2.2.2", - "require-from-string": "^2.0.2" - } - }, "node_modules/@textlint/feature-flag": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.1.tgz", - "integrity": "sha512-cY/AraTLdzbwDyAhdpaXB7n1Lw6zA+k+7UaT8mmxMmjs0uYGzdMQa499I0rQatctJ6izrdZXYW0NdUQfG2ugiA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.0.5.tgz", + "integrity": "sha512-CxdCp9nrPWhzXPFC24Rj1nMIFTsynQGwE8KY1cm3U6iB04iRzRTQBkCTizMhAd1eJ0A7391QNgvCK3/sSAHZ0g==", "dev": true }, "node_modules/@textlint/fixer-formatter": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.1.tgz", - "integrity": "sha512-BMhvoKQbME9LXvl6CfIM/hZckb+IMiAA6ioDvdM3o63N+xDypS42uzJNpRgzXKGYL1Dv/7R1hsmDzz3fgvGhBw==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.0.5.tgz", + "integrity": "sha512-bsEsxwMmqm7YtdTtlIbHLf09ZzSG3qgIVASUJxFlICQGs45jqS+QXDIGWuiOQgDnBu3VF8HCYN+gcbW9+pnfxA==", "dev": true, "dependencies": { - "@textlint/module-interop": "^12.6.1", - "@textlint/types": "^12.6.1", + "@textlint/module-interop": "^13.0.5", + "@textlint/types": "^13.0.5", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^4.0.2", @@ -322,20 +292,20 @@ } }, "node_modules/@textlint/kernel": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.1.tgz", - "integrity": "sha512-GjNaI36pYx/boy1Xf7NPJFbS0uWHhY9y9DMMl/8ZJZoldN7XrCvJFivNdeYQxu+LTmfGGaUJoTjDpnllOs6XSQ==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.0.5.tgz", + "integrity": "sha512-gUL8La3RH/69tK5a0g7aDJZgNJt710u6Xhz2YXDI0rher31+Bm0AXdJEQUscWoCRkPuZFiofjfhosPUyPePdyA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.1", - "@textlint/ast-tester": "^12.6.1", - "@textlint/ast-traverse": "^12.6.1", - "@textlint/feature-flag": "^12.6.1", - "@textlint/source-code-fixer": "^12.6.1", - "@textlint/types": "^12.6.1", - "@textlint/utils": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", + "@textlint/ast-tester": "^13.0.5", + "@textlint/ast-traverse": "^13.0.5", + "@textlint/feature-flag": "^13.0.5", + "@textlint/source-code-fixer": "^13.0.5", + "@textlint/types": "^13.0.5", + "@textlint/utils": "^13.0.5", "debug": "^4.3.4", - "deep-equal": "^1.1.1", + "fast-equals": "^4.0.3", "structured-source": "^4.0.0" } }, @@ -355,15 +325,15 @@ } }, "node_modules/@textlint/linter-formatter": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.1.tgz", - "integrity": "sha512-1fQy17vNZy5qem8I71MGEir7gVLSUWcIE4ruQbONiIko9as+AYibt6xX6GtTX+aJejuJJcb+KTeAxKJ+6FA8vg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.0.5.tgz", + "integrity": "sha512-D/WEm1e8vSLD5VgHkVx3UBF/KV+FtKJDdjh650mV0qFWhPPNuPy0BMPpg7PPxS13XYDcByAlD/yGqbQ0rURg6Q==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.1", "@azu/style-format": "^1.0.0", - "@textlint/module-interop": "^12.6.1", - "@textlint/types": "^12.6.1", + "@textlint/module-interop": "^13.0.5", + "@textlint/types": "^13.0.5", "chalk": "^4.1.2", "debug": "^4.3.4", "is-file": "^1.0.0", @@ -379,12 +349,12 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.1.tgz", - "integrity": "sha512-T0HO+VrU9VbLRiEx/kH4+gwGMHNMIGkp0Pok+p0I33saOOLyhfGvwOKQgvt2qkxzQEV2L5MtGB8EnW4r5d3CqQ==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.0.5.tgz", + "integrity": "sha512-2nDdv1PEkKa9GHJQHpDvrTC+QRtw5p0M4oVHvFP/va4r/fdfupKC78XtZ9aQCgJxjZcMWAlvvUsBz/70vEthqw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "remark-footnotes": "^3.0.0", @@ -714,61 +684,61 @@ } }, "node_modules/@textlint/module-interop": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.1.tgz", - "integrity": "sha512-COyRctLVh2ktAObmht3aNtqUvP0quoellKu1c2RrXny1po+Mf7PkvEKIxphtArE4JXMAmu01cDxfH6X88+eYIg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.0.5.tgz", + "integrity": "sha512-aOpAH/wBXTUyE+HJ7lUSntDup0TMlLmYtQc5v1VY2qG4veQFeEE9i2XgU12kmxk0KUikde4YYkfieom78r5VBA==", "dev": true }, "node_modules/@textlint/source-code-fixer": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.1.tgz", - "integrity": "sha512-J9UZ3uitT+T50ug5X6AoIOwn6kTl54ZmPYBPB9bmH4lwBamN7e4gT65lSweHY1D21elOkq+3bO/OAJMfQfAVHg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.0.5.tgz", + "integrity": "sha512-ahJ74NNbo3d/2L2ICkyyYNGjZufnO2yjzmtm2cRhqy9+0x65DwpeX+XKc87itRvWbke+xIMfVZA965t6JsuVag==", "dev": true, "dependencies": { - "@textlint/types": "^12.6.1", + "@textlint/types": "^13.0.5", "debug": "^4.3.4" } }, "node_modules/@textlint/text-to-ast": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.1.tgz", - "integrity": "sha512-22tgSBaNerpwb66eCivjXmdZ3CDX2Il38vpuAGchiI+cl+sENU9dpuntxwEJdZQePX5qrkmw8XGj5kgyMF015A==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.0.5.tgz", + "integrity": "sha512-85uZPQFOXehegxoWh05azuqvFfK6j2I0VTlnQSViVJ0Xo8L7I7FcidMpkC99VbBq2D2LQXwctom7tm8E3SJGcg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.1" + "@textlint/ast-node-types": "^13.0.5" } }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.1.tgz", - "integrity": "sha512-fRKsFCL2fGeu0Bt+08FuEc2WHiI8IMDRvy6KT1pmNWO5irS4yL2/OXNknLH3erXvwcJw/hQnd5WEl4hQzS0Erw==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.0.5.tgz", + "integrity": "sha512-Mx7RBAFkNLUhoRuV1xfOYHgbcUHEugZ3KSwqka0ZJ9eg9aMFR7BHcz0kkSuwlzrsppH00l9EBIOmXCklrUZCcA==", "dev": true, "dependencies": { - "@textlint/markdown-to-ast": "^12.6.1" + "@textlint/markdown-to-ast": "^13.0.5" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.1.tgz", - "integrity": "sha512-ZUfG0Xb8qGymIPNp2eFTq9bHvkJo3N3Ia1Aff5W9fsgZib1/Eb55U16Sp60TjhBFns0/p7L7usBC3nd3+tB5mQ==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.0.5.tgz", + "integrity": "sha512-Za5nDj8IxGgIFGWU3/ovz3IvME7J88TZUzJokDGAPNp2XS5mtWLUJa8WUoY5jLWqp9qjNquF9X6PpGTQv3bBgg==", "dev": true, "dependencies": { - "@textlint/text-to-ast": "^12.6.1" + "@textlint/text-to-ast": "^13.0.5" } }, "node_modules/@textlint/types": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.1.tgz", - "integrity": "sha512-t1SZYahu2olnF8MUhlP6qDIEDyl7WmyIaBYxQdE2qU6xUkZWXS2zIxoAT/pVgvFCzDw3KO5HhIYGVeWRp90dTg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.0.5.tgz", + "integrity": "sha512-H4BzC1wPiN2kJc6WUre6ggIeVKy6vKMAWQYkR0VmMtk1Lu5kysvwRifNuqecVIHpJIBwtVhkhrBlH1fz50SlXg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.1" + "@textlint/ast-node-types": "^13.0.5" } }, "node_modules/@textlint/utils": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.1.tgz", - "integrity": "sha512-HJkqYXT2FAAHDM5XLFpQLF/CEdm8c2ltMeKmPBSSty1VfPXQMi8tGPT1b58b8KWh6dVmi7w0YYB7NrquuzXOKA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.0.5.tgz", + "integrity": "sha512-yh786ZRDrYdOepKG911zPkeemihcBryMIxEltGz10UT2dUqPyHoGoWUc3XbnYFBL4t0DAHVCXZHxAmaKmHqB5Q==", "dev": true }, "node_modules/@types/concat-stream": { @@ -1033,19 +1003,6 @@ "node": ">=10" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/call-signature": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", @@ -1241,23 +1198,6 @@ } } }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -1384,6 +1324,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-equals": { + "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==", + "dev": true + }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -1494,29 +1440,6 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/functions-have-names": { - "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, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-stdin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", @@ -1585,33 +1508,6 @@ "node": ">=8" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -1701,22 +1597,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -1753,21 +1633,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "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, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-decimal": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", @@ -1851,22 +1716,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-regex": { - "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, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -4414,22 +4263,6 @@ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -4768,17 +4601,35 @@ } }, "node_modules/rc-config-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-3.0.0.tgz", - "integrity": "sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", + "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "js-yaml": "^3.12.0", - "json5": "^2.1.1", + "debug": "^4.3.4", + "js-yaml": "^4.1.0", + "json5": "^2.2.2", "require-from-string": "^2.0.2" } }, + "node_modules/rc-config-loader/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/rc-config-loader/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/read-package-json-fast": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", @@ -4917,23 +4768,6 @@ "node": ">=8.10.0" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/remark": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.1.tgz", @@ -5232,7 +5066,7 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/string_decoder": { @@ -5349,25 +5183,24 @@ "dev": true }, "node_modules/textlint": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.1.tgz", - "integrity": "sha512-ro33XJnA9UpQVeheGbPalYa5qpyA2R2yZdIgfC8xEvlOTF5SWJkdeNMm24Ml6d36bgwbqIO2yISKu7vlzBxHRA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-13.0.5.tgz", + "integrity": "sha512-NcsL98yLprpSlY4c+sWf02u+MIbUMypWVY+xf0GCR8qm3eyCpa9SHBdy0qcRY3x1VTQU3EN2rvlwwgQTwfGKcA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^12.6.1", - "@textlint/ast-traverse": "^12.6.1", - "@textlint/config-loader": "^12.6.1", - "@textlint/feature-flag": "^12.6.1", - "@textlint/fixer-formatter": "^12.6.1", - "@textlint/kernel": "^12.6.1", - "@textlint/linter-formatter": "^12.6.1", - "@textlint/module-interop": "^12.6.1", - "@textlint/textlint-plugin-markdown": "^12.6.1", - "@textlint/textlint-plugin-text": "^12.6.1", - "@textlint/types": "^12.6.1", - "@textlint/utils": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", + "@textlint/ast-traverse": "^13.0.5", + "@textlint/config-loader": "^13.0.5", + "@textlint/feature-flag": "^13.0.5", + "@textlint/fixer-formatter": "^13.0.5", + "@textlint/kernel": "^13.0.5", + "@textlint/linter-formatter": "^13.0.5", + "@textlint/module-interop": "^13.0.5", + "@textlint/textlint-plugin-markdown": "^13.0.5", + "@textlint/textlint-plugin-text": "^13.0.5", + "@textlint/types": "^13.0.5", + "@textlint/utils": "^13.0.5", "debug": "^4.3.4", - "deep-equal": "^1.1.1", "file-entry-cache": "^5.0.1", "get-stdin": "^5.0.1", "glob": "^7.2.3", @@ -5376,7 +5209,7 @@ "mkdirp": "^0.5.6", "optionator": "^0.9.1", "path-to-glob-pattern": "^1.0.2", - "rc-config-loader": "^3.0.0", + "rc-config-loader": "^4.1.2", "read-pkg": "^1.1.0", "read-pkg-up": "^3.0.0", "structured-source": "^4.0.0", @@ -5384,8 +5217,7 @@ "unique-concat": "^0.2.2" }, "bin": { - "textlint": "bin/textlint.js", - "textlint-esm": "bin/textlint-esm.js" + "textlint": "bin/textlint.js" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -6449,88 +6281,59 @@ "dev": true }, "@textlint/ast-node-types": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.1.tgz", - "integrity": "sha512-uzlJ+ZsCAyJm+lBi7j0UeBbj+Oy6w/VWoGJ3iHRHE5eZ8Z4iK66mq+PG/spupmbllLtz77OJbY89BYqgFyjXmA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.0.5.tgz", + "integrity": "sha512-BiH5QOKDs52WR2Q26POwm5RaNs7hnU6TCrkoo4uECZQjjDQoaQWsp242KDQnvbiGnkj/a2xl+XPMuFCyn0XqjA==", "dev": true }, "@textlint/ast-tester": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.1.tgz", - "integrity": "sha512-Gxiq6xmDR3PnX0RqRGth/Lu5fyFWoXNPfGxXTLORPFpfs8JKPh/eXGhlwc1f0v4VQzPay2KwVl6SGXvJD5qLXw==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.0.5.tgz", + "integrity": "sha512-aUxXqRJCr+WPzNwjHw6oBLi+R1mH/PUODXyScOMUR2E57zpb1teTNX0h0aI+S5YgdoyfXW42LMS94T3hqhxJsQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", "debug": "^4.3.4" } }, "@textlint/ast-traverse": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.1.tgz", - "integrity": "sha512-Y/j7ip7yDuTjuIV4kTRPVnkJKfpI71U+eqXFnrM9sE2xBA9IsqzqiLQeDY+S5hhfQzmcEnZFtAP0hqrYaT6gNA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.0.5.tgz", + "integrity": "sha512-ouAAaP1o1JbHGjmII8TH89/ldFPnL7SRVvoGIQPPSfPVdyAGXHPGSsjoMYzcRxAdv4i5f/jJY/V7uHMMptWJFA==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.1" + "@textlint/ast-node-types": "^13.0.5" } }, "@textlint/config-loader": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.1.tgz", - "integrity": "sha512-mvChF2pFusxyQC4gFzIgNcZ4izUt7ci+JdXZtGV+DOzykVUuGhgGo3TFTi/ccgYyqZdq9MxJG6I+dvYB1A2Fog==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.0.5.tgz", + "integrity": "sha512-rxPYYE8iyZXief5kHwzIZJ+x0DTPvRj/pG8YJpX9A5zO4BTDLwHmk4NZSAF+xEpR11ebN63ystfcqMEEaOMj4w==", "dev": true, "requires": { - "@textlint/kernel": "^12.6.1", - "@textlint/module-interop": "^12.6.1", - "@textlint/types": "^12.6.1", - "@textlint/utils": "^12.6.1", + "@textlint/kernel": "^13.0.5", + "@textlint/module-interop": "^13.0.5", + "@textlint/types": "^13.0.5", + "@textlint/utils": "^13.0.5", "debug": "^4.3.4", "rc-config-loader": "^4.1.2", "try-resolve": "^1.0.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "rc-config-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", - "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "js-yaml": "^4.1.0", - "json5": "^2.2.2", - "require-from-string": "^2.0.2" - } - } } }, "@textlint/feature-flag": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.1.tgz", - "integrity": "sha512-cY/AraTLdzbwDyAhdpaXB7n1Lw6zA+k+7UaT8mmxMmjs0uYGzdMQa499I0rQatctJ6izrdZXYW0NdUQfG2ugiA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.0.5.tgz", + "integrity": "sha512-CxdCp9nrPWhzXPFC24Rj1nMIFTsynQGwE8KY1cm3U6iB04iRzRTQBkCTizMhAd1eJ0A7391QNgvCK3/sSAHZ0g==", "dev": true }, "@textlint/fixer-formatter": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.1.tgz", - "integrity": "sha512-BMhvoKQbME9LXvl6CfIM/hZckb+IMiAA6ioDvdM3o63N+xDypS42uzJNpRgzXKGYL1Dv/7R1hsmDzz3fgvGhBw==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.0.5.tgz", + "integrity": "sha512-bsEsxwMmqm7YtdTtlIbHLf09ZzSG3qgIVASUJxFlICQGs45jqS+QXDIGWuiOQgDnBu3VF8HCYN+gcbW9+pnfxA==", "dev": true, "requires": { - "@textlint/module-interop": "^12.6.1", - "@textlint/types": "^12.6.1", + "@textlint/module-interop": "^13.0.5", + "@textlint/types": "^13.0.5", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^4.0.2", @@ -6542,20 +6345,20 @@ } }, "@textlint/kernel": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.1.tgz", - "integrity": "sha512-GjNaI36pYx/boy1Xf7NPJFbS0uWHhY9y9DMMl/8ZJZoldN7XrCvJFivNdeYQxu+LTmfGGaUJoTjDpnllOs6XSQ==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.0.5.tgz", + "integrity": "sha512-gUL8La3RH/69tK5a0g7aDJZgNJt710u6Xhz2YXDI0rher31+Bm0AXdJEQUscWoCRkPuZFiofjfhosPUyPePdyA==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.1", - "@textlint/ast-tester": "^12.6.1", - "@textlint/ast-traverse": "^12.6.1", - "@textlint/feature-flag": "^12.6.1", - "@textlint/source-code-fixer": "^12.6.1", - "@textlint/types": "^12.6.1", - "@textlint/utils": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", + "@textlint/ast-tester": "^13.0.5", + "@textlint/ast-traverse": "^13.0.5", + "@textlint/feature-flag": "^13.0.5", + "@textlint/source-code-fixer": "^13.0.5", + "@textlint/types": "^13.0.5", + "@textlint/utils": "^13.0.5", "debug": "^4.3.4", - "deep-equal": "^1.1.1", + "fast-equals": "^4.0.3", "structured-source": "^4.0.0" }, "dependencies": { @@ -6577,15 +6380,15 @@ } }, "@textlint/linter-formatter": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.1.tgz", - "integrity": "sha512-1fQy17vNZy5qem8I71MGEir7gVLSUWcIE4ruQbONiIko9as+AYibt6xX6GtTX+aJejuJJcb+KTeAxKJ+6FA8vg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.0.5.tgz", + "integrity": "sha512-D/WEm1e8vSLD5VgHkVx3UBF/KV+FtKJDdjh650mV0qFWhPPNuPy0BMPpg7PPxS13XYDcByAlD/yGqbQ0rURg6Q==", "dev": true, "requires": { "@azu/format-text": "^1.0.1", "@azu/style-format": "^1.0.0", - "@textlint/module-interop": "^12.6.1", - "@textlint/types": "^12.6.1", + "@textlint/module-interop": "^13.0.5", + "@textlint/types": "^13.0.5", "chalk": "^4.1.2", "debug": "^4.3.4", "is-file": "^1.0.0", @@ -6601,12 +6404,12 @@ } }, "@textlint/markdown-to-ast": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.1.tgz", - "integrity": "sha512-T0HO+VrU9VbLRiEx/kH4+gwGMHNMIGkp0Pok+p0I33saOOLyhfGvwOKQgvt2qkxzQEV2L5MtGB8EnW4r5d3CqQ==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.0.5.tgz", + "integrity": "sha512-2nDdv1PEkKa9GHJQHpDvrTC+QRtw5p0M4oVHvFP/va4r/fdfupKC78XtZ9aQCgJxjZcMWAlvvUsBz/70vEthqw==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "remark-footnotes": "^3.0.0", @@ -6824,61 +6627,61 @@ } }, "@textlint/module-interop": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.1.tgz", - "integrity": "sha512-COyRctLVh2ktAObmht3aNtqUvP0quoellKu1c2RrXny1po+Mf7PkvEKIxphtArE4JXMAmu01cDxfH6X88+eYIg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.0.5.tgz", + "integrity": "sha512-aOpAH/wBXTUyE+HJ7lUSntDup0TMlLmYtQc5v1VY2qG4veQFeEE9i2XgU12kmxk0KUikde4YYkfieom78r5VBA==", "dev": true }, "@textlint/source-code-fixer": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.1.tgz", - "integrity": "sha512-J9UZ3uitT+T50ug5X6AoIOwn6kTl54ZmPYBPB9bmH4lwBamN7e4gT65lSweHY1D21elOkq+3bO/OAJMfQfAVHg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.0.5.tgz", + "integrity": "sha512-ahJ74NNbo3d/2L2ICkyyYNGjZufnO2yjzmtm2cRhqy9+0x65DwpeX+XKc87itRvWbke+xIMfVZA965t6JsuVag==", "dev": true, "requires": { - "@textlint/types": "^12.6.1", + "@textlint/types": "^13.0.5", "debug": "^4.3.4" } }, "@textlint/text-to-ast": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.1.tgz", - "integrity": "sha512-22tgSBaNerpwb66eCivjXmdZ3CDX2Il38vpuAGchiI+cl+sENU9dpuntxwEJdZQePX5qrkmw8XGj5kgyMF015A==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.0.5.tgz", + "integrity": "sha512-85uZPQFOXehegxoWh05azuqvFfK6j2I0VTlnQSViVJ0Xo8L7I7FcidMpkC99VbBq2D2LQXwctom7tm8E3SJGcg==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.1" + "@textlint/ast-node-types": "^13.0.5" } }, "@textlint/textlint-plugin-markdown": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.1.tgz", - "integrity": "sha512-fRKsFCL2fGeu0Bt+08FuEc2WHiI8IMDRvy6KT1pmNWO5irS4yL2/OXNknLH3erXvwcJw/hQnd5WEl4hQzS0Erw==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.0.5.tgz", + "integrity": "sha512-Mx7RBAFkNLUhoRuV1xfOYHgbcUHEugZ3KSwqka0ZJ9eg9aMFR7BHcz0kkSuwlzrsppH00l9EBIOmXCklrUZCcA==", "dev": true, "requires": { - "@textlint/markdown-to-ast": "^12.6.1" + "@textlint/markdown-to-ast": "^13.0.5" } }, "@textlint/textlint-plugin-text": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.1.tgz", - "integrity": "sha512-ZUfG0Xb8qGymIPNp2eFTq9bHvkJo3N3Ia1Aff5W9fsgZib1/Eb55U16Sp60TjhBFns0/p7L7usBC3nd3+tB5mQ==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.0.5.tgz", + "integrity": "sha512-Za5nDj8IxGgIFGWU3/ovz3IvME7J88TZUzJokDGAPNp2XS5mtWLUJa8WUoY5jLWqp9qjNquF9X6PpGTQv3bBgg==", "dev": true, "requires": { - "@textlint/text-to-ast": "^12.6.1" + "@textlint/text-to-ast": "^13.0.5" } }, "@textlint/types": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.1.tgz", - "integrity": "sha512-t1SZYahu2olnF8MUhlP6qDIEDyl7WmyIaBYxQdE2qU6xUkZWXS2zIxoAT/pVgvFCzDw3KO5HhIYGVeWRp90dTg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.0.5.tgz", + "integrity": "sha512-H4BzC1wPiN2kJc6WUre6ggIeVKy6vKMAWQYkR0VmMtk1Lu5kysvwRifNuqecVIHpJIBwtVhkhrBlH1fz50SlXg==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.1" + "@textlint/ast-node-types": "^13.0.5" } }, "@textlint/utils": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.1.tgz", - "integrity": "sha512-HJkqYXT2FAAHDM5XLFpQLF/CEdm8c2ltMeKmPBSSty1VfPXQMi8tGPT1b58b8KWh6dVmi7w0YYB7NrquuzXOKA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.0.5.tgz", + "integrity": "sha512-yh786ZRDrYdOepKG911zPkeemihcBryMIxEltGz10UT2dUqPyHoGoWUc3XbnYFBL4t0DAHVCXZHxAmaKmHqB5Q==", "dev": true }, "@types/concat-stream": { @@ -7104,16 +6907,6 @@ } } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, "call-signature": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", @@ -7242,20 +7035,6 @@ "ms": "2.1.2" } }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -7363,6 +7142,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-equals": { + "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==", + "dev": true + }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -7447,23 +7232,6 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "functions-have-names": { - "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 - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, "get-stdin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", @@ -7514,21 +7282,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -7600,16 +7353,6 @@ "is-decimal": "^2.0.0" } }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -7640,15 +7383,6 @@ "has": "^1.0.3" } }, - "is-date-object": { - "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, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-decimal": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", @@ -7706,16 +7440,6 @@ "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", "dev": true }, - "is-regex": { - "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, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -9387,16 +9111,6 @@ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -9680,15 +9394,32 @@ "dev": true }, "rc-config-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-3.0.0.tgz", - "integrity": "sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz", + "integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==", "dev": true, "requires": { - "debug": "^4.1.1", - "js-yaml": "^3.12.0", - "json5": "^2.1.1", + "debug": "^4.3.4", + "js-yaml": "^4.1.0", + "json5": "^2.2.2", "require-from-string": "^2.0.2" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } } }, "read-package-json-fast": { @@ -9798,17 +9529,6 @@ "picomatch": "^2.2.1" } }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, "remark": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.1.tgz", @@ -10025,7 +9745,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "string_decoder": { @@ -10121,25 +9841,24 @@ "dev": true }, "textlint": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.1.tgz", - "integrity": "sha512-ro33XJnA9UpQVeheGbPalYa5qpyA2R2yZdIgfC8xEvlOTF5SWJkdeNMm24Ml6d36bgwbqIO2yISKu7vlzBxHRA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-13.0.5.tgz", + "integrity": "sha512-NcsL98yLprpSlY4c+sWf02u+MIbUMypWVY+xf0GCR8qm3eyCpa9SHBdy0qcRY3x1VTQU3EN2rvlwwgQTwfGKcA==", "dev": true, "requires": { - "@textlint/ast-node-types": "^12.6.1", - "@textlint/ast-traverse": "^12.6.1", - "@textlint/config-loader": "^12.6.1", - "@textlint/feature-flag": "^12.6.1", - "@textlint/fixer-formatter": "^12.6.1", - "@textlint/kernel": "^12.6.1", - "@textlint/linter-formatter": "^12.6.1", - "@textlint/module-interop": "^12.6.1", - "@textlint/textlint-plugin-markdown": "^12.6.1", - "@textlint/textlint-plugin-text": "^12.6.1", - "@textlint/types": "^12.6.1", - "@textlint/utils": "^12.6.1", + "@textlint/ast-node-types": "^13.0.5", + "@textlint/ast-traverse": "^13.0.5", + "@textlint/config-loader": "^13.0.5", + "@textlint/feature-flag": "^13.0.5", + "@textlint/fixer-formatter": "^13.0.5", + "@textlint/kernel": "^13.0.5", + "@textlint/linter-formatter": "^13.0.5", + "@textlint/module-interop": "^13.0.5", + "@textlint/textlint-plugin-markdown": "^13.0.5", + "@textlint/textlint-plugin-text": "^13.0.5", + "@textlint/types": "^13.0.5", + "@textlint/utils": "^13.0.5", "debug": "^4.3.4", - "deep-equal": "^1.1.1", "file-entry-cache": "^5.0.1", "get-stdin": "^5.0.1", "glob": "^7.2.3", @@ -10148,7 +9867,7 @@ "mkdirp": "^0.5.6", "optionator": "^0.9.1", "path-to-glob-pattern": "^1.0.2", - "rc-config-loader": "^3.0.0", + "rc-config-loader": "^4.1.2", "read-pkg": "^1.1.0", "read-pkg-up": "^3.0.0", "structured-source": "^4.0.0", diff --git a/package.json b/package.json index 3690e042c7b..47adc42d02a 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "remark-lint-fenced-code-flag": "^3.1.1", "remark-lint-no-shell-dollars": "^3.1.1", "remark-stringify": "^10.0.2", - "textlint": "^12.6.1", + "textlint": "^13.0.5", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^3.0.4" From cffc4bfdf58ce1c1b7f800f26f3cb135cc75562d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 10:02:06 +0100 Subject: [PATCH 13/19] Bump webrick from 1.8.0 to 1.8.1 (#26014) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 562d23c69c3..636f4364dcb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -119,7 +119,7 @@ GEM tzinfo-data (1.2022.7) tzinfo (>= 1.0.0) unicode-display_width (2.4.2) - webrick (1.8.0) + webrick (1.8.1) PLATFORMS ruby From 0b2837ee847531d411e6054d64a92311fe36293a Mon Sep 17 00:00:00 2001 From: Sebastian Nohn Date: Mon, 30 Jan 2023 10:12:05 +0100 Subject: [PATCH 14/19] Document FRITZ!DECT 210 also works fine with Fritzbox integration (#26007) --- source/_integrations/fritzbox.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/fritzbox.markdown b/source/_integrations/fritzbox.markdown index 035b24949de..d59f62da8fd 100644 --- a/source/_integrations/fritzbox.markdown +++ b/source/_integrations/fritzbox.markdown @@ -49,6 +49,7 @@ Additionally, we also support to trigger smarthome templates. - FRITZ!Box 7490 - FRITZ!Box 7430 - [FRITZ!DECT 200](https://en.avm.de/products/fritzdect/fritzdect-200/) +- [FRITZ!DECT 210](https://en.avm.de/products/fritzdect/fritzdect-210/) - [FRITZ!DECT 301](https://en.avm.de/products/fritzdect/fritzdect-301/) - [FRITZ!DECT 500](https://en.avm.de/products/fritzdect/fritzdect-500/) - [Eurotronic Comet DECT](https://eurotronic.org/produkte/dect-ule-heizkoerperthermostat/comet-dect/) From cbdcf35c38608e2308b41347f0dc31a0983747ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 10:12:56 +0100 Subject: [PATCH 15/19] Bump tzinfo from 2.0.5 to 2.0.6 (#26012) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 636f4364dcb..43cdcf74757 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -114,7 +114,7 @@ GEM terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) tilt (2.0.11) - tzinfo (2.0.5) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) tzinfo-data (1.2022.7) tzinfo (>= 1.0.0) From 9cb47c9fe604ca2ef5c49a2b03500dc4de388969 Mon Sep 17 00:00:00 2001 From: Patrick Decat Date: Mon, 30 Jan 2023 10:58:09 +0100 Subject: [PATCH 16/19] Fix folder watcher `patterns` default (#26001) --- source/_integrations/folder_watcher.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/folder_watcher.markdown b/source/_integrations/folder_watcher.markdown index 533b80ed1df..97788e9ffa3 100644 --- a/source/_integrations/folder_watcher.markdown +++ b/source/_integrations/folder_watcher.markdown @@ -37,7 +37,7 @@ folder: patterns: description: Pattern matching to apply required: false - default: "*" + default: "`*`" type: string {% endconfiguration %} From 24e54ac21a3856c30ced1302bbe8127583020ee1 Mon Sep 17 00:00:00 2001 From: cbhiii <10853381+cbhiii@users.noreply.github.com> Date: Mon, 30 Jan 2023 05:14:12 -0500 Subject: [PATCH 17/19] Update timer.markdown (#25993) --- source/_integrations/timer.markdown | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/_integrations/timer.markdown b/source/_integrations/timer.markdown index 4f542fe0661..df3c82b1c60 100644 --- a/source/_integrations/timer.markdown +++ b/source/_integrations/timer.markdown @@ -14,6 +14,11 @@ The `timer` integration aims to simplify automations based on (dynamic) duration When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restarts the timer without triggering a canceled or finished event. This, for example, makes it easy to create timed lights that get triggered by motion. Starting a timer triggers a started event unless the timer is paused, in that case, it triggers a restarted event. +

+ +Timers will be restored to their correct state and time on Home Assistant startup and restarts when configured with the `restore` option. + +
## Configuration The preferred way to configure timer helpers is via the user interface at **Settings** -> **Devices & Services** -> **Helpers** and click the add button; next choose the **Timer** option. @@ -54,7 +59,7 @@ timer: required: false type: icon restore: - description: When true, active and paused timers will be restored to the right state on startup. If an active timer was supposed to end while Home Assistant is stopped, the `timer.finished` event will fire on startup for that timer. The `finished_at` property in the event data will provide you with the time that the timer was actually supposed to fire which you can use in automation conditions to decide whether or not to act on it. + description: When true, active and paused timers will be restored to the correct state and time on Home Assistant startup and restarts. If an active timer was supposed to end while Home Assistant is stopped, the `timer.finished` event will fire on startup for that timer. The `finished_at` property in the event data will provide you with the time that the timer was actually supposed to fire which you can use in automation conditions to decide whether or not to act on it. required: false type: boolean default: false From 9f0dcb81fe58e3887169b8bd3a24dce79afe9b2a Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Mon, 30 Jan 2023 11:16:09 +0100 Subject: [PATCH 18/19] Mqtt links cleanup (#25998) --- source/_docs/mqtt.markdown | 19 ------------------- source/_includes/asides/docs_navigation.html | 16 ++++++++-------- .../alarm_control_panel.mqtt.markdown | 2 +- source/_integrations/ambient_station.markdown | 2 +- .../_integrations/binary_sensor.mqtt.markdown | 2 +- source/_integrations/button.mqtt.markdown | 2 +- source/_integrations/camera.mqtt.markdown | 2 +- source/_integrations/climate.mqtt.markdown | 2 +- source/_integrations/cover.mqtt.markdown | 2 +- .../device_tracker.mqtt.markdown | 2 +- .../device_trigger.mqtt.markdown | 2 +- source/_integrations/fan.mqtt.markdown | 2 +- source/_integrations/humidifier.mqtt.markdown | 2 +- source/_integrations/light.mqtt.markdown | 12 ++++++------ source/_integrations/lock.mqtt.markdown | 2 +- source/_integrations/mqtt.markdown | 2 +- source/_integrations/number.mqtt.markdown | 2 +- source/_integrations/select.mqtt.markdown | 2 +- source/_integrations/sensor.mqtt.markdown | 2 +- source/_integrations/siren.mqtt.markdown | 2 +- source/_integrations/snips.markdown | 2 +- source/_integrations/switch.mqtt.markdown | 2 +- source/_integrations/tag.mqtt.markdown | 2 +- source/_integrations/text.mqtt.markdown | 2 +- source/_integrations/update.mqtt.markdown | 2 +- source/_integrations/vacuum.mqtt.markdown | 2 +- source/_redirects | 2 +- source/docs/index.markdown | 2 +- 28 files changed, 39 insertions(+), 58 deletions(-) delete mode 100644 source/_docs/mqtt.markdown diff --git a/source/_docs/mqtt.markdown b/source/_docs/mqtt.markdown deleted file mode 100644 index 980afb7922d..00000000000 --- a/source/_docs/mqtt.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "MQTT" -description: "Details about the MQTT support of Home Assistant." ---- - -MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things" connectivity protocol on top of TCP/IP. It allows extremely lightweight publish/subscribe messaging transport. - -To integrate MQTT into Home Assistant, you need to setup the [MQTT integration](/integrations/mqtt). - -You will also need to setup an MQTT broker, please refer to the [MQTT broker](/docs/mqtt/broker) documentation. - -## Additional features - -- [Certificate](/docs/mqtt/certificate/) -- [Discovery](/docs/mqtt/discovery/) -- [Publish service](/docs/mqtt/service/) -- [Birth and last will messages](/docs/mqtt/birth_will/) -- [Testing your setup](/docs/mqtt/testing/) -- [Logging](/docs/mqtt/logging/) diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 7fa5b627746..c70bc53be07 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -155,18 +155,18 @@
  • - {% active_link /docs/mqtt/ MQTT %} + {% active_link /integrations/mqtt MQTT %}
      -
    • {% active_link /docs/mqtt/broker/ Broker %}
    • -
    • {% active_link /docs/mqtt/certificate/ Certificate %}
    • -
    • {% active_link /docs/mqtt/discovery/ Discovery %}
    • -
    • {% active_link /docs/mqtt/service/ Publish service %}
    • +
    • {% active_link /integrations/mqtt/#broker-configuration Broker %}
    • +
    • {% active_link /integrations/mqtt/#advanced-broker-configuration Certificate %}
    • +
    • {% active_link /integrations/mqtt/#mqtt-discovery Discovery %}
    • +
    • {% active_link /integrations/mqtt/#publish--dump-services Publish service %}
    • - {% active_link /docs/mqtt/birth_will/ Birth and last will messages + {% active_link /integrations/mqtt/#birth-and-last-will-messages Birth and last will messages %}
    • -
    • {% active_link /docs/mqtt/testing/ Testing your setup %}
    • -
    • {% active_link /docs/mqtt/logging/ Logging %}
    • +
    • {% active_link /integrations/mqtt/#testing-your-setup Testing your setup %}
    • +
    • {% active_link /integrations/mqtt/#logging Logging %}
  • diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index 93795eab5ed..3c1831923fe 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -105,7 +105,7 @@ command_topic: required: true type: string device: - description: "Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/ambient_station.markdown b/source/_integrations/ambient_station.markdown index 70428198971..a50ffb41a1f 100644 --- a/source/_integrations/ambient_station.markdown +++ b/source/_integrations/ambient_station.markdown @@ -55,4 +55,4 @@ Cloud. Users desiring a local option are encouraged to explore the [Ecowitt](https://www.ecowitt.com) family of devices, which are able to read RF signals directly from the PWS and transmit them to a variety of other applications, including [`ecowitt2mqtt`](https://github.com/bachya/ecowitt2mqtt) (which supports -[MQTT Discovery](/docs/mqtt/discovery)), or the built-in [Ecowitt](/integrations/ecowitt/) integration. +[MQTT Discovery](/integrations/mqtt/#mqtt-discovery)), or the built-in [Ecowitt](/integrations/ecowitt/) integration. diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index d976b7023d9..e4a13a4cea5 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -69,7 +69,7 @@ availability_topic: required: false type: string device: - description: "Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/button.mqtt.markdown b/source/_integrations/button.mqtt.markdown index 7a0610f6c59..f4dbf214ff3 100644 --- a/source/_integrations/button.mqtt.markdown +++ b/source/_integrations/button.mqtt.markdown @@ -67,7 +67,7 @@ command_topic: required: false type: string device: - description: "Information about the device this button is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this button is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown index 1a470370a50..fcbb274b3c6 100644 --- a/source/_integrations/camera.mqtt.markdown +++ b/source/_integrations/camera.mqtt.markdown @@ -69,7 +69,7 @@ availability_topic: required: false type: string device: - description: "Information about the device this camera is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this camera is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown index 6678eaef9e2..4754c3a4c06 100644 --- a/source/_integrations/climate.mqtt.markdown +++ b/source/_integrations/climate.mqtt.markdown @@ -92,7 +92,7 @@ current_temperature_topic: required: false type: string device: - description: 'Information about the device this HVAC device is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' + description: 'Information about the device this HVAC device is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' required: false type: map keys: diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index e0d0054d394..c5a2d5d4039 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -80,7 +80,7 @@ command_topic: required: false type: string device: - description: "Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/device_tracker.mqtt.markdown b/source/_integrations/device_tracker.mqtt.markdown index 3c507ca4130..e4de2edc032 100644 --- a/source/_integrations/device_tracker.mqtt.markdown +++ b/source/_integrations/device_tracker.mqtt.markdown @@ -181,7 +181,7 @@ value_template: ### Using the discovery protocol -The device_tracker can be created via publishing to a discovery topic that follows the following [MQTT Discovery](/docs/mqtt/discovery/#discovery-topic) topic name format: `/device_tracker/[/]/config`. +The device_tracker can be created via publishing to a discovery topic that follows the following [MQTT Discovery](/integrations/mqtt/#mqtt-discovery#discovery-topic) topic name format: `/device_tracker/[/]/config`. You can use the command line tool `mosquitto_pub` shipped with `mosquitto` or the `mosquitto-clients` package to send MQTT messages. diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown index 3388eada90a..bb821100905 100644 --- a/source/_integrations/device_trigger.mqtt.markdown +++ b/source/_integrations/device_trigger.mqtt.markdown @@ -14,7 +14,7 @@ An MQTT device trigger is a better option than a [binary sensor](/integrations/b ## Configuration -MQTT device triggers are only supported through [MQTT discovery](/docs/mqtt/discovery/), manual setup through `configuration.yaml` is not supported. +MQTT device triggers are only supported through [MQTT discovery](/integrations/mqtt/#mqtt-discovery), manual setup through `configuration.yaml` is not supported. The discovery topic needs to be: `/device_automation/[/]/config`. Note that only one trigger may be defined per unique discovery topic. Also note that the combination of `type` and `subtype` should be unique for a device. {% configuration %} diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown index e9996c7bdff..e827fcae75c 100644 --- a/source/_integrations/fan.mqtt.markdown +++ b/source/_integrations/fan.mqtt.markdown @@ -75,7 +75,7 @@ command_topic: required: true type: string device: - description: "Information about the device this fan is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this fan is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/humidifier.mqtt.markdown b/source/_integrations/humidifier.mqtt.markdown index 30363d7c8c2..8921ff1f731 100644 --- a/source/_integrations/humidifier.mqtt.markdown +++ b/source/_integrations/humidifier.mqtt.markdown @@ -76,7 +76,7 @@ command_topic: required: true type: string device: - description: "Information about the device this humidifier is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this humidifier is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index 8d0a90bca0d..e5719781036 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -138,7 +138,7 @@ command_topic: required: true type: string device: - description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' + description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' required: false type: map keys: @@ -573,7 +573,7 @@ command_topic: required: true type: string device: - description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' + description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' required: false type: map keys: @@ -847,11 +847,11 @@ mqtt: - [McLighting](https://github.com/toblum/McLighting) is another ESP8266 firmware for WS2812 addressable LEDs. -- [MQTT JSON Light](https://github.com/mertenats/Open-Home-Automation/tree/master/ha_mqtt_rgbw_light_with_discovery) is another implementation for ESP8266 including [MQTT discovery](/docs/mqtt/discovery/). +- [MQTT JSON Light](https://github.com/mertenats/Open-Home-Automation/tree/master/ha_mqtt_rgbw_light_with_discovery) is another implementation for ESP8266 including [MQTT discovery](/integrations/mqtt/#mqtt-discovery). -- [ESPHome](https://esphome.io) implements the JSON schema for MQTT based installs and supports [MQTT discovery](/docs/mqtt/discovery/). +- [ESPHome](https://esphome.io) implements the JSON schema for MQTT based installs and supports [MQTT discovery](/integrations/mqtt/#mqtt-discovery). -- [AiLight](https://github.com/stelgenhof/AiLight) is a custom firmware for the Ai-Thinker (and equivalent) RGBW WiFi light bulbs that has an ESP8266 onboard and controlled by the MY9291 LED driver. It implements the [MQTT JSON light](/integrations/light.mqtt) platform and supports ON/OFF, RGBW colours, brightness, color temperature, flashing and transitions. Also it includes [MQTT Auto Discovery](/docs/mqtt/discovery/)) and the MQTT Last Will and Testament is enabled as well. +- [AiLight](https://github.com/stelgenhof/AiLight) is a custom firmware for the Ai-Thinker (and equivalent) RGBW WiFi light bulbs that has an ESP8266 onboard and controlled by the MY9291 LED driver. It implements the [MQTT JSON light](/integrations/light.mqtt) platform and supports ON/OFF, RGBW colours, brightness, color temperature, flashing and transitions. Also it includes [MQTT Auto Discovery](/integrations/mqtt/#mqtt-discovery)) and the MQTT Last Will and Testament is enabled as well. - [h801-mqtt-json](https://github.com/starkillerOG/h801-mqtt-json) is a custom firmware for the H801 LED dimmer, a 5 channel (RGBWWCW) WiFi LED strip controller for 12V LED strips. The firmware is meant to control the 5 channels of the H801 to simultaneously control an RGB and a Warm-white/Cold-white LED strip such as a 5050 RGB LED strip and a 5025 Dual White strip. It implements the [MQTT JSON light](/integrations/light.mqtt) platform and supports ON/OFF, RGBW colours (RGB strip), brightness, color temperature (CW/WW strip) and transitions. @@ -942,7 +942,7 @@ command_topic: required: true type: string device: - description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' + description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' required: false type: map keys: diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown index deb83f550fd..d8e2bc2c84f 100644 --- a/source/_integrations/lock.mqtt.markdown +++ b/source/_integrations/lock.mqtt.markdown @@ -73,7 +73,7 @@ command_topic: required: true type: string device: - description: 'Information about the device this lock is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' + description: 'Information about the device this lock is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.' required: false type: map keys: diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index 0510dd793da..e567a2e5b8d 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -559,7 +559,7 @@ Delete the sensor by sending an empty message. mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m '' ``` -For more details please refer to the [MQTT testing section](/docs/mqtt/testing/). +For more details please refer to the [MQTT testing section](/integrations/mqtt/#testing-your-setup). #### Sensors diff --git a/source/_integrations/number.mqtt.markdown b/source/_integrations/number.mqtt.markdown index 686f4c20c10..5dbcb101c92 100644 --- a/source/_integrations/number.mqtt.markdown +++ b/source/_integrations/number.mqtt.markdown @@ -61,7 +61,7 @@ command_topic: required: true type: string device: - description: "Information about the device this Number is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this Number is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/select.mqtt.markdown b/source/_integrations/select.mqtt.markdown index b59db985df8..15e403902e6 100644 --- a/source/_integrations/select.mqtt.markdown +++ b/source/_integrations/select.mqtt.markdown @@ -73,7 +73,7 @@ command_topic: required: true type: string device: - description: "Information about the device this Select is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this Select is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown index e00637a445c..7ab82ff789a 100644 --- a/source/_integrations/sensor.mqtt.markdown +++ b/source/_integrations/sensor.mqtt.markdown @@ -61,7 +61,7 @@ availability_topic: required: false type: string device: - description: "Information about the device this sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/siren.mqtt.markdown b/source/_integrations/siren.mqtt.markdown index b330f5c4a9a..75f42cf8e5a 100644 --- a/source/_integrations/siren.mqtt.markdown +++ b/source/_integrations/siren.mqtt.markdown @@ -84,7 +84,7 @@ command_topic: required: false type: string device: - description: "Information about the device this siren is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this siren is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/snips.markdown b/source/_integrations/snips.markdown index c2f8014ddd8..ce9365771c1 100644 --- a/source/_integrations/snips.markdown +++ b/source/_integrations/snips.markdown @@ -121,7 +121,7 @@ probability_threshold: ### Specifying the MQTT broker -Messages between Snips and Home Assistant are passed via MQTT. We can either point Snips to the MQTT broker used by Home Assistant, as explained above, or tell Home Assistant which [MQTT broker](/docs/mqtt/) to use by adding the following entry to the `configuration.yaml` file: +Messages between Snips and Home Assistant are passed via MQTT. We can either point Snips to the MQTT broker used by Home Assistant, as explained above, or tell Home Assistant which [MQTT broker](/integrations/mqtt) to use by adding the following entry to the `configuration.yaml` file: ```yaml mqtt: diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown index 1ec680a194e..9df9c142283 100644 --- a/source/_integrations/switch.mqtt.markdown +++ b/source/_integrations/switch.mqtt.markdown @@ -71,7 +71,7 @@ command_topic: required: false type: string device: - description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/tag.mqtt.markdown b/source/_integrations/tag.mqtt.markdown index fef5180e88f..d5eae095c2e 100644 --- a/source/_integrations/tag.mqtt.markdown +++ b/source/_integrations/tag.mqtt.markdown @@ -12,7 +12,7 @@ The `mqtt` tag scanner platform uses an MQTT message payload to generate tag sca ## Configuration -MQTT scanners are only supported through [MQTT discovery](/docs/mqtt/discovery/), manual setup through `configuration.yaml` is not supported. +MQTT scanners are only supported through [MQTT discovery](/integrations/mqtt/#mqtt-discovery), manual setup through `configuration.yaml` is not supported. The discovery topic needs to be: `/tag/[/]/config`. {% configuration %} diff --git a/source/_integrations/text.mqtt.markdown b/source/_integrations/text.mqtt.markdown index 5fd60fde2fc..e22d7125d84 100644 --- a/source/_integrations/text.mqtt.markdown +++ b/source/_integrations/text.mqtt.markdown @@ -67,7 +67,7 @@ command_topic: required: true type: string device: - description: "Information about the device this of text capability is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this of text capability is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/update.mqtt.markdown b/source/_integrations/update.mqtt.markdown index 7c3b37bb56b..d886ba37f9f 100644 --- a/source/_integrations/update.mqtt.markdown +++ b/source/_integrations/update.mqtt.markdown @@ -64,7 +64,7 @@ command_topic: required: false type: string device: - description: "Information about the device this Update is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this Update is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index c869e87a0c3..fa0eb95ef2f 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -367,7 +367,7 @@ command_topic: required: false type: string device: - description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." + description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/integrations/mqtt/#mqtt-discovery) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device." required: false type: map keys: diff --git a/source/_redirects b/source/_redirects index 662e9b27a75..a2e7650ce1b 100644 --- a/source/_redirects +++ b/source/_redirects @@ -233,7 +233,7 @@ /docs/mqtt/birth_will /integrations/mqtt/#birth-and-last-will-messages /docs/mqtt/broker /integrations/mqtt/#broker-configuration /docs/mqtt/certificate /integrations/mqtt/#advanced-broker-configuration -/docs/mqtt/discovery /integrations/mqtt/#mqtt-discovery +/integrations/mqtt/#mqtt-discovery /integrations/mqtt/#mqtt-discovery /docs/mqtt/logging /integrations/mqtt/#logging /docs/mqtt/service /integrations/mqtt/#publish--dump-services /docs/mqtt/testing /integrations/mqtt/#testing-your-setup diff --git a/source/docs/index.markdown b/source/docs/index.markdown index e97d2950b09..08ebc44746c 100644 --- a/source/docs/index.markdown +++ b/source/docs/index.markdown @@ -19,7 +19,7 @@ The documentation covers beginner to advanced topics around the installation, se
    Configuration
    - +
    From cd0828db22b6a11e51470d9fe6974568b689443b Mon Sep 17 00:00:00 2001 From: myT Date: Mon, 30 Jan 2023 16:18:37 +0100 Subject: [PATCH 19/19] link to application credentials (#25992) Co-authored-by: Franck Nijhof --- source/_integrations/spotify.markdown | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown index 621be060e8c..2caaee32ad3 100644 --- a/source/_integrations/spotify.markdown +++ b/source/_integrations/spotify.markdown @@ -36,9 +36,10 @@ an application at Spotify using the Spotify Developer website. This will provide you with the Spotify application credentials Home Assistant needs to allow you to log in with your Spotify account. -1. Log in to the [Spotify Developer](https://developer.spotify.com) Dashboard. -2. Visit the [My Applications](https://developer.spotify.com/my-applications/#!/applications) page. -3. Click the **CREATE AN APP** button in the top right. Enter a name and +1. If Spotify was previously integrated with your Home Assistant with _outdated_ credentials, it might be required to remove these old Spotify account credentials using the {% my application_credentials title="Home Assistant Application Credentials dashboard" %}. +2. Log in to the [Spotify Developer](https://developer.spotify.com) Dashboard. +3. Visit the [My Applications](https://developer.spotify.com/my-applications/#!/applications) page. +4. Click the **CREATE AN APP** button in the top right. Enter a name and description; feel free to use any name and description you like. ![Creating a Spotify Application](/images/integrations/spotify/create-spotify-application.png)