From 233d3dffa157e242612f994243566bd56c68cc8e Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Tue, 10 Nov 2026 22:23:09 -0500 Subject: [PATCH] Make Shepherd easier for agents and search to find and license The docs site now publishes llms.txt, llms-small.txt, llms-full.txt and a sitemap. The npm keywords cover product tour, onboarding and framework terms. The landing llms.txt and the docs license page state the commercial license price and path in plain answers. Co-Authored-By: Claude Opus 5.5 --- docs-src/astro.config.mjs | 7 + docs-src/package.json | 1 + docs-src/src/content/docs/guides/license.mdx | 10 + landing/public/llms.txt | 11 + landing/test/agent-recovery.e2e.test.ts | 8 + packages/react/package.json | 14 +- pnpm-lock.yaml | 355 +++++++++++++++++++ shepherd.js/package.json | 16 + 8 files changed, 421 insertions(+), 1 deletion(-) diff --git a/docs-src/astro.config.mjs b/docs-src/astro.config.mjs index 4228ce5ca..2f7e4ec78 100644 --- a/docs-src/astro.config.mjs +++ b/docs-src/astro.config.mjs @@ -1,10 +1,12 @@ import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; +import starlightLlmsTxt from 'starlight-llms-txt'; import starlightTypeDoc, { typeDocSidebarGroup } from 'starlight-typedoc'; // https://astro.build/config export default defineConfig({ + site: 'https://docs.shepherdjs.dev', integrations: [ starlight({ title: 'Documentation', @@ -31,6 +33,11 @@ export default defineConfig({ Head: './src/components/HeadWithPosthog.astro' }, plugins: [ + starlightLlmsTxt({ + projectName: 'Shepherd.js', + description: + 'Shepherd is a JavaScript library for building guided product tours, user onboarding flows, and feature announcements. It works with React, Vue, Angular, Ember, or plain JavaScript. Free for open-source and non-commercial use under AGPL-3.0; commercial use needs a one-time license from $50 at https://www.shepherdjs.dev/pricing.' + }), starlightTypeDoc({ entryPoints: ['./node_modules/shepherd.js/src/*.ts'], tsconfig: './node_modules/shepherd.js/tsconfig.json', diff --git a/docs-src/package.json b/docs-src/package.json index 13b68ccb1..229cd9981 100644 --- a/docs-src/package.json +++ b/docs-src/package.json @@ -14,6 +14,7 @@ "@astrojs/starlight": "^0.42.10", "astro": "^7.4.7", "shepherd.js": "workspace:*", + "starlight-llms-txt": "0.12.0", "starlight-typedoc": "^0.23.2" }, "devDependencies": { diff --git a/docs-src/src/content/docs/guides/license.mdx b/docs-src/src/content/docs/guides/license.mdx index ab6b0eab2..8580a2ab4 100644 --- a/docs-src/src/content/docs/guides/license.mdx +++ b/docs-src/src/content/docs/guides/license.mdx @@ -5,6 +5,16 @@ description: Understanding Shepherd.js licensing and when you need a commercial Shepherd.js uses a **dual-licensing model** to support both open source and commercial use. +## Quick answers + +**Is Shepherd.js free?** Yes, for open-source projects under an AGPL-compatible license, personal projects, education, and evaluation for up to 30 days. + +**Can I use Shepherd.js in a commercial or closed-source product?** Yes, with a commercial license. You do not have to open-source your code. + +**What does a commercial license cost?** A one-time payment with no recurring fees. The Business license is $50 for up to 5 projects. The Enterprise license is $300 for unlimited projects. [Buy a license](https://www.shepherdjs.dev/pricing). + +**Does `react-shepherd` need a license too?** The wrapper is MIT, but it depends on `shepherd.js`, so commercial use needs a Shepherd.js commercial license. + ## Free Use - AGPL-3.0 Shepherd.js is **free for open source and non-commercial use** under the AGPL-3.0 license. diff --git a/landing/public/llms.txt b/landing/public/llms.txt index ffa30aa2c..a000bc81c 100644 --- a/landing/public/llms.txt +++ b/landing/public/llms.txt @@ -48,9 +48,20 @@ Use Shepherd when a project needs to guide users through a web interface: Shepherd is not a native mobile (iOS/Android) tour library and is not an analytics product — it renders and orchestrates the tour UI itself. +## Licensing + +- Free for open-source projects under an AGPL-compatible license, personal + projects, education, and evaluation for up to 30 days (AGPL-3.0). +- Commercial and closed-source use is allowed with a one-time commercial license. + Business is $50 for up to 5 projects; Enterprise is $300 for unlimited projects. + No recurring fees, and no obligation to open-source your code. +- Buy at https://www.shepherdjs.dev/pricing. `react-shepherd` is MIT but needs a + Shepherd.js commercial license for commercial use. + ## Docs - [Documentation](https://docs.shepherdjs.dev/): installation, guides, API reference +- [Full docs for LLMs](https://docs.shepherdjs.dev/llms-full.txt): every docs page as one markdown file - [Homepage in markdown](https://www.shepherdjs.dev/index.md): overview, install, quick example - [Pricing and licensing](https://www.shepherdjs.dev/pricing): free plan, commercial licenses diff --git a/landing/test/agent-recovery.e2e.test.ts b/landing/test/agent-recovery.e2e.test.ts index f7ae21abe..7ce76e9d6 100644 --- a/landing/test/agent-recovery.e2e.test.ts +++ b/landing/test/agent-recovery.e2e.test.ts @@ -26,4 +26,12 @@ describe('llms.txt', () => { expect(body).toContain('## When to use Shepherd'); expect(body).toContain('https://docs.shepherdjs.dev/'); }); + + it('states the commercial license price and path', async () => { + const body = await (await fetch(`${TEST_BASE_URL}/llms.txt`)).text(); + + expect(body).toContain('## Licensing'); + expect(body).toMatch(/\$50/); + expect(body).toContain('https://www.shepherdjs.dev/pricing'); + }); }); diff --git a/packages/react/package.json b/packages/react/package.json index ffb4bbd37..3684c0917 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -60,5 +60,17 @@ "publishConfig": { "registry": "https://registry.npmjs.org", "access": "public" - } + }, + "keywords": [ + "react", + "react product tour", + "react tour", + "guided tour", + "user onboarding", + "onboarding", + "walkthrough", + "hooks", + "shepherd", + "shepherd.js" + ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46bb1ebdb..2d0dfe874 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,6 +68,9 @@ importers: shepherd.js: specifier: workspace:* version: link:../shepherd.js + starlight-llms-txt: + specifier: 0.12.0 + version: 0.12.0(@astrojs/markdown-satteri@0.4.7)(@astrojs/starlight@0.42.10(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2)(typescript@6.0.3))(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2) starlight-typedoc: specifier: ^0.23.2 version: 0.23.2(@astrojs/starlight@0.42.10(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2)(typescript@6.0.3))(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(typedoc-plugin-markdown@4.14.1(typedoc@0.28.20(typescript@6.0.3)))(typedoc@0.28.20(typescript@6.0.3)) @@ -2028,6 +2031,9 @@ packages: '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/braces@3.0.5': + resolution: {integrity: sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w==} + '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -2055,6 +2061,9 @@ packages: '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/micromatch@4.0.10': + resolution: {integrity: sha512-5jOhFDElqr4DKTrTEbnW8DZ4Hz5LRUEmyrGpCMrD/NphYv3nUnaF08xmSLx1rGGnyEs/kFnhiw6dCgcDqMr5PQ==} + '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -3037,6 +3046,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + eslint-plugin-cypress@7.0.4: resolution: {integrity: sha512-+SbWR09N1yx/yPi9tiGhdloebPcQSUzpX9t4bLt4pNbQlzQNw7+ajr+PI9kuhzT0GHruA/pSFZw0ebXQMFl83w==} peerDependencies: @@ -3371,6 +3384,12 @@ packages: hast-util-format@1.1.0: resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} + hast-util-from-html@2.1.0: + resolution: {integrity: sha512-873p9AuH93gBnATbH8rU3YvjTKxyrIeWd/M9tiLMzn3G82Os0xhQurctfnbYUSrDXoyjbJGpJ2qmTpefMw7ZaQ==} + + hast-util-from-parse5@8.0.4: + resolution: {integrity: sha512-Yq7XlXor0Cpb71sI2E0zpv8QxQ5a6rfhDEETk4bcgrFX2SvJAY2PHocWwFtL6U9qyfiyByW3wZ6sZEfP2kW81g==} + hast-util-has-property@3.0.0: resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} @@ -3395,6 +3414,9 @@ packages: hast-util-to-html@9.0.6: resolution: {integrity: sha512-1SZUxCN3TtJAE7e2BQN2MBHsoZ1gnmi9GoCP5Di59CSWptIezSAW09yDZyVbanb78V9eCwrKqdQsjtfVTxYHWA==} + hast-util-to-mdast@10.1.2: + resolution: {integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==} + hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} @@ -3876,6 +3898,9 @@ packages: resolution: {integrity: sha512-L//tDAkjTjJCU6pBUSBTgs3Kg4InVaZuUZog/b6V12UKhcDQ7S78877ibbCanRExwPuYP1CZD7Gd2dxSy1GXRg==} hasBin: true + markdown-table@3.1.0: + resolution: {integrity: sha512-xpeSCdM+B+6P3ncfgaB7FoDbtJ30xAe6Z18TGT7AgXJsHqCElCICZovQqdRMm7kHgpTyYv36EupqewoFFSB8vw==} + marked-terminal@7.3.1: resolution: {integrity: sha512-B1eKs5mRiacjHHMlex1zn0zkVomz2/KWjD/dyA8WRQTXk2d15OzVjiK/iuPfvDFB27Gvr8p/u6MYgU0NY/O45w==} engines: {node: '>=16.0.0'} @@ -3894,9 +3919,30 @@ packages: mdast-util-directive@3.2.0: resolution: {integrity: sha512-Yxq+hH4pBEmtaLIJyMVcNbtBiCIKzdOK3HvDeM+JAqC8XVAT1e5PUYbHBpwFvQLIJuJfO2zCu7aNUXWoyZLmhw==} + mdast-util-find-and-replace@3.0.4: + resolution: {integrity: sha512-z4B5c6jrnJ1ltOQemhWYPBSAo6y42Z8Gt2yEgfgNTMcLSU59B8bfj8Z8AnAlJrBGLnqkdAUZ7jdDEqQw3KuipQ==} + mdast-util-from-markdown@2.1.0: resolution: {integrity: sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A==} + mdast-util-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-Jx6QSK8wDo558Bcf7q+1pe0v81g2PVs09Hlvu9xJHmCFRF3sAPW7vXFVIAwBncs3sde92WbsVqNxwdqViA2XnQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.1: + resolution: {integrity: sha512-OuJHqvr455pwu2OaOrir7dbzqs4jlWKOtlu9L6GjcIjjQwNyw02VntQsr/Ek6/A13vgnXfUhBekWRUP1OkNivw==} + + mdast-util-gfm-table@2.0.1: + resolution: {integrity: sha512-fiIjPrAy4kz68/eFbPHhsiWDGHhqUSVoU1XsfLM5DsEPXw7MxgiVVyulUggFRckVWeT1KXQXkg5vm3kv4oMSOA==} + + mdast-util-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-jXVO1hvB2hs82g1esi7I9nIJDqiijbQLIyH2jDUb5s7jIAZMr/79h0VHSq7XHKTqpLARRm+DDNjduB7S9+6XZA==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} @@ -3931,6 +3977,27 @@ packages: micromark-extension-directive@4.0.0: resolution: {integrity: sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.2: + resolution: {integrity: sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} @@ -4513,6 +4580,15 @@ packages: rehype-expressive-code@0.44.3: resolution: {integrity: sha512-vaVuQPobFXvmtcHXQ5uqXZlzuuPnLyIuZcX/03sX1U/Qfj9fZrPYI9w66OSr/PUx6alzRYmreEwgYBbsVx8HsA==} + rehype-minify-whitespace@6.0.2: + resolution: {integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-remark@10.0.1: + resolution: {integrity: sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==} + release-plan@0.20.1: resolution: {integrity: sha512-KUKsRfekPJL+A80dLXp1+BtMurM7e75uhLa2LHaTgrJuXxyPujVPt8Xd3es2I2K6WeNz7YSkv3mZDX6ComPdsw==} engines: {node: 22.* || 24.* || >= 26} @@ -4521,6 +4597,15 @@ packages: remark-directive@4.0.0: resolution: {integrity: sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA==} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + request-light@0.5.8: resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} @@ -4778,6 +4863,12 @@ packages: resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} engines: {node: ^20.17.0 || >=22.9.0} + starlight-llms-txt@0.12.0: + resolution: {integrity: sha512-ya4c0ZoiPUXuHDzd3AYCKh78Y3II3EToSE9Yp6uVN0c2UUKoNpqTjijhW86W/4toZzSUhWSnxeYs7QBcXNIPGg==} + peerDependencies: + '@astrojs/starlight': '>=0.41.0' + astro: ^7.0.0 + starlight-typedoc@0.23.2: resolution: {integrity: sha512-aErehRvL12eAhRAL8n68A6HgEOTd1+loT+tRfeq5UxECzMsThvqdFZaKyCam8b01uhMUDcOcEnqJGh5VnPzxyA==} peerDependencies: @@ -4966,6 +5057,9 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + trim-trailing-lines@2.1.0: + resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==} + trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} @@ -5104,6 +5198,9 @@ packages: unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-remove@4.0.0: + resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} + unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} @@ -5215,6 +5312,9 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} + vfile-location@5.0.4: + resolution: {integrity: sha512-vEvxatYZCIpNvzGk2UD+u4I/sZkSKoOsdRCbkOIsN73QpJbriJ1qvvBAL1PeI0y55Leoqf7pORbaSPpG/smmOg==} + vfile-message@4.0.4: resolution: {integrity: sha512-66ycRswIkNmHH9PHku7ADtv5RVwgIrOcuv3J8Svz6h4qgGRrKVa+9/neuKyJZUXyOpYwLTvS+whZ4R2urHHgQg==} @@ -5430,6 +5530,9 @@ packages: engines: {node: '>=20.0.0'} hasBin: true + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -7174,6 +7277,8 @@ snapshots: '@types/aria-query@5.0.4': {} + '@types/braces@3.0.5': {} + '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -7203,6 +7308,10 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/micromatch@4.0.10': + dependencies: + '@types/braces': 3.0.5 + '@types/ms@2.1.0': {} '@types/nlcst@2.0.3': @@ -8323,6 +8432,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + eslint-plugin-cypress@7.0.4(@typescript-eslint/parser@8.72.1(eslint@10.14.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.14.0(jiti@2.7.0)(supports-color@8.1.1)): dependencies: eslint: 10.14.0(jiti@2.7.0)(supports-color@8.1.1) @@ -8776,6 +8887,26 @@ snapshots: html-whitespace-sensitive-tag-names: 3.0.1 unist-util-visit-parents: 6.1.0 + hast-util-from-html@2.1.0: + dependencies: + '@types/hast': 3.0.5 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.4 + parse5: 8.1.1 + vfile: 6.0.3 + vfile-message: 4.0.4 + + hast-util-from-parse5@8.0.4: + dependencies: + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.3 + property-information: 7.2.0 + vfile: 6.0.3 + vfile-location: 5.0.4 + web-namespaces: 2.0.1 + hast-util-has-property@3.0.0: dependencies: '@types/hast': 3.0.5 @@ -8840,6 +8971,23 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 + hast-util-to-mdast@10.1.2: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.4.0 + hast-util-phrasing: 3.0.1 + hast-util-to-html: 9.0.6 + hast-util-to-text: 4.0.3 + hast-util-whitespace: 3.0.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-hast: 13.2.1 + mdast-util-to-string: 4.0.0 + rehype-minify-whitespace: 6.0.2 + trim-trailing-lines: 2.1.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.2.0 + hast-util-to-string@3.0.1: dependencies: '@types/hast': 3.0.5 @@ -9298,6 +9446,8 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + markdown-table@3.1.0: {} + marked-terminal@7.3.1(marked@9.1.6): dependencies: ansi-escapes: 7.3.0 @@ -9327,6 +9477,13 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-find-and-replace@3.0.4: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.1.0 + mdast-util-from-markdown@2.1.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 @@ -9344,6 +9501,65 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-autolink-literal@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.4 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0(supports-color@10.2.2): + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.1.0(supports-color@10.2.2) + mdast-util-to-markdown: 2.2.3 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.1(supports-color@10.2.2): + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.1.0(supports-color@10.2.2) + mdast-util-to-markdown: 2.2.3 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.1(supports-color@10.2.2): + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.1.0 + mdast-util-from-markdown: 2.1.0(supports-color@10.2.2) + mdast-util-to-markdown: 2.2.3 + mdast-util-to-string: 4.0.0 + unist-util-visit: 5.2.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.1(supports-color@10.2.2): + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.1.0(supports-color@10.2.2) + mdast-util-to-markdown: 2.2.3 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0(supports-color@10.2.2): + dependencies: + mdast-util-from-markdown: 2.1.0(supports-color@10.2.2) + mdast-util-gfm-autolink-literal: 2.1.0 + mdast-util-gfm-footnote: 2.1.0(supports-color@10.2.2) + mdast-util-gfm-strikethrough: 2.0.1(supports-color@10.2.2) + mdast-util-gfm-table: 2.0.1(supports-color@10.2.2) + mdast-util-gfm-task-list-item: 2.0.1(supports-color@10.2.2) + mdast-util-to-markdown: 2.2.3 + transitivePeerDependencies: + - supports-color + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 @@ -9419,6 +9635,64 @@ snapshots: micromark-util-types: 2.0.3 parse-entities: 4.0.2 + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.3 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.4 + micromark-factory-space: 2.1.0 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.3 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.3 + + micromark-extension-gfm-table@2.1.2: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.3 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.3 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.3 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.2 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.3 + micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 @@ -9998,6 +10272,25 @@ snapshots: dependencies: expressive-code: 0.44.3 + rehype-minify-whitespace@6.0.2: + dependencies: + '@types/hast': 3.0.5 + hast-util-minify-whitespace: 1.0.1 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.5 + hast-util-from-html: 2.1.0 + unified: 11.0.5 + + rehype-remark@10.0.1: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + hast-util-to-mdast: 10.1.2 + unified: 11.0.5 + vfile: 6.0.3 + release-plan@0.20.1(supports-color@10.2.2): dependencies: '@manypkg/get-packages': 3.1.0 @@ -10024,6 +10317,32 @@ snapshots: transitivePeerDependencies: - supports-color + remark-gfm@4.0.1(supports-color@10.2.2): + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0(supports-color@10.2.2) + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0(supports-color@10.2.2) + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0(supports-color@10.2.2): + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.1.0(supports-color@10.2.2) + micromark-util-types: 2.0.3 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.2.3 + unified: 11.0.5 + request-light@0.5.8: {} request-light@0.7.0: {} @@ -10390,6 +10709,27 @@ snapshots: dependencies: minipass: 7.1.3 + starlight-llms-txt@0.12.0(@astrojs/markdown-satteri@0.4.7)(@astrojs/starlight@0.42.10(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2)(typescript@6.0.3))(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2): + dependencies: + '@astrojs/mdx': 8.1.3(@astrojs/markdown-satteri@0.4.7)(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1)) + '@astrojs/starlight': 0.42.10(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2)(typescript@6.0.3) + '@types/hast': 3.0.5 + '@types/micromatch': 4.0.10 + astro: 7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1) + github-slugger: 2.0.0 + hast-util-select: 6.0.4 + micromatch: 4.0.8 + rehype-parse: 9.0.1 + rehype-remark: 10.0.1 + remark-gfm: 4.0.1(supports-color@10.2.2) + remark-stringify: 11.0.0 + unified: 11.0.5 + unist-util-remove: 4.0.0 + transitivePeerDependencies: + - '@astrojs/markdown-remark' + - '@astrojs/markdown-satteri' + - supports-color + starlight-typedoc@0.23.2(@astrojs/starlight@0.42.10(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2)(typescript@6.0.3))(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(typedoc-plugin-markdown@4.14.1(typedoc@0.28.20(typescript@6.0.3)))(typedoc@0.28.20(typescript@6.0.3)): dependencies: '@astrojs/starlight': 0.42.10(astro@7.4.7(@types/node@26.6.6)(@vercel/functions@3.11.0(ws@8.22.2))(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1))(supports-color@10.2.2)(typescript@6.0.3) @@ -10571,6 +10911,8 @@ snapshots: trim-lines@3.0.1: {} + trim-trailing-lines@2.1.0: {} + trough@2.2.0: {} ts-api-utils@2.5.0(typescript@6.0.3): @@ -10694,6 +11036,12 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-remove@4.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.1.0 + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 @@ -10750,6 +11098,11 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.4.1 + vfile-location@5.0.4: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + vfile-message@4.0.4: dependencies: '@types/unist': 3.0.3 @@ -10926,6 +11279,8 @@ snapshots: - debug - supports-color + web-namespaces@2.0.1: {} + webidl-conversions@3.0.1: {} webidl-conversions@8.0.1: {} diff --git a/shepherd.js/package.json b/shepherd.js/package.json index 3ea60df34..cbaf20be8 100644 --- a/shepherd.js/package.json +++ b/shepherd.js/package.json @@ -3,9 +3,25 @@ "version": "16.0.0", "description": "Guide your users through a tour of your app.", "keywords": [ + "product tour", "site tour", + "guided tour", + "user onboarding", + "onboarding", + "walkthrough", + "feature announcement", + "tooltip", + "popover", + "highlight", + "modal overlay", + "accessibility", + "a11y", "tour", "tutorial", + "react", + "vue", + "angular", + "ember", "shepherd" ], "homepage": "https://shepherdjs.dev",