searchdock-cli 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Xplormity Collective
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,186 @@
1
+ Metadata-Version: 2.4
2
+ Name: searchdock-cli
3
+ Version: 0.1.1
4
+ Summary: Google Search Console CLI with agent skills and MCP support. Requires Node.js 22+.
5
+ Author-email: Xplormity Collective <xplormityai@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/xplormityai/searchdock-cli
8
+ Project-URL: Documentation, https://github.com/xplormityai/searchdock-cli#readme
9
+ Project-URL: Issues, https://github.com/xplormityai/searchdock-cli/issues
10
+ Project-URL: Source, https://github.com/xplormityai/searchdock-cli
11
+ Keywords: google-search-console,seo,cli,mcp,search-analytics
12
+ Classifier: Environment :: Console
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Topic :: Internet :: WWW/HTTP
16
+ Requires-Python: >=3.10
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Dynamic: license-file
20
+
21
+ # SearchDock CLI — Google Search Console CLI
22
+
23
+ Read Google Search Console analytics, inspect indexed URLs, and monitor sitemaps from your terminal or AI agent.
24
+
25
+ SearchDock is open source, runs locally, and requests read-only Google access. Use the same core through npm, Python, MCP, a Codex or Claude Code plugin, or a standalone agent skill. **Bing Webmaster Tools support is planned.**
26
+
27
+ ## Install
28
+
29
+ Node.js **22 or later** is required for every distribution.
30
+
31
+ Packages: [npm](https://www.npmjs.com/package/searchdock-cli) · [PyPI](https://pypi.org/project/searchdock-cli/).
32
+
33
+ ```sh
34
+ # npm
35
+ npm install --global searchdock-cli
36
+ searchdock --help
37
+
38
+ # No global installation
39
+ npx --yes searchdock-cli@0.1.1 --help
40
+
41
+ # Python; Node.js is still required
42
+ pipx install searchdock-cli
43
+ # Alternatively: python -m pip install searchdock-cli
44
+ ```
45
+
46
+ The Python package is a launcher containing the exact same JavaScript runtime. It has no separate Google implementation. If you install both packages, use `python -m searchdock_cli` to select the Python launcher explicitly.
47
+
48
+ To run from source:
49
+
50
+ ```sh
51
+ git clone https://github.com/xplormityai/searchdock-cli.git
52
+ cd searchdock-cli
53
+ npm ci
54
+ npm run build
55
+ node dist/cli.cjs --help
56
+ ```
57
+
58
+ ## Connect Google Search Console
59
+
60
+ Create a Google OAuth **Desktop app** client in your own Google Cloud project, enable the Search Console API, and download the client JSON. See [Google setup](https://github.com/xplormityai/searchdock-cli/blob/main/docs/google-setup.md) for the steps and testing-mode limits. No shared developer credentials are included.
61
+
62
+ ```sh
63
+ searchdock auth login --client-file /path/to/desktop-client.json
64
+ searchdock sites list
65
+ searchdock sites use sc-domain:example.com
66
+ searchdock auth status
67
+ ```
68
+
69
+ Google opens a local browser consent flow. SearchDock uses PKCE, validates the callback state, and listens only on `127.0.0.1`. It requests `webmasters.readonly` and keeps the refresh token in your operating system's per-user configuration directory, outside this repository. Credentials are stored as permission-protected local JSON, **not encrypted by SearchDock**. See [privacy](https://github.com/xplormityai/searchdock-cli/blob/main/docs/privacy.md).
70
+
71
+ ## Commands
72
+
73
+ ```sh
74
+ # Search performance and top queries
75
+ searchdock analytics --days 28
76
+ searchdock analytics --dimensions page --days 28 --json
77
+ searchdock analytics --dimensions date --start 2026-09-01 --end 2026-09-30
78
+
79
+ # Exact, case-insensitive brand queries
80
+ searchdock analytics --brand "Your Brand" --json
81
+
82
+ # Sitemaps and Google's indexed URL status
83
+ searchdock sitemaps
84
+ searchdock inspect https://example.com/
85
+
86
+ # Combined report, including only the URLs you specify
87
+ searchdock report --urls https://example.com/,https://example.com/about --json
88
+ searchdock report --output ./private-report.json
89
+
90
+ # Multiple accounts/sites
91
+ searchdock auth login --client-file /path/to/client.json --profile work
92
+ searchdock sites use https://example.com/ --profile work
93
+ searchdock analytics --profile work --site https://example.com/ --json
94
+
95
+ # Diagnostics and local credential removal
96
+ searchdock doctor
97
+ searchdock auth logout
98
+ ```
99
+
100
+ `--json` writes machine-readable results to stdout and errors to stderr with a nonzero exit status. `--output` saves JSON to a **new** file and refuses to overwrite an existing one. Keep private reports out of Git yourself. CSV is not yet supported. For URLs containing commas, use the MCP `urls` array or the JavaScript API for batch inspection.
101
+
102
+ Report windows default to 28 days ending three days before today in **Pacific Time**, to allow for Search Console processing. You can specify exact dates. Finalized data may still lag. Pagination supports up to 100,000 requested rows, but Google's API returns top rows and omits some anonymized query data. Missing rows do not prove zero demand; zero impressions make average position meaningless.
103
+
104
+ ## AI agents and MCP
105
+
106
+ SearchDock provides five read-only MCP tools: `searchdock_sites`, `searchdock_analytics`, `searchdock_sitemaps`, `searchdock_inspect`, and `searchdock_report`. Authenticate locally first; MCP tools do not start consent or change account settings.
107
+
108
+ Add this stdio server to any compatible MCP client:
109
+
110
+ ```json
111
+ {
112
+ "mcpServers": {
113
+ "searchdock": {
114
+ "command": "npx",
115
+ "args": ["--yes", "searchdock-cli@0.1.1", "mcp"]
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ For a source checkout, set `command` to `node` and `args` to `["/absolute/path/searchdock-cli/dist/cli.cjs", "mcp"]`. Windows clients that launch `npx.cmd` through a shell may need `command: "cmd"` and `args: ["/c", "npx", "--yes", "searchdock-cli@0.1.1", "mcp"]`. Use your client's Windows configuration guidance.
122
+
123
+ Plugins use the same pinned npm version:
124
+
125
+ ```sh
126
+ # Codex CLI
127
+ codex plugin marketplace add xplormityai/searchdock-cli
128
+ codex plugin add searchdock@searchdock
129
+ ```
130
+
131
+ In Claude Code:
132
+
133
+ ```text
134
+ /plugin marketplace add xplormityai/searchdock-cli
135
+ /plugin install searchdock@searchdock
136
+ ```
137
+
138
+ For a standalone skill, copy [`skills/searchdock`](https://github.com/xplormityai/searchdock-cli/blob/main/skills/searchdock) into your agent's skills directory. Codex uses `~/.agents/skills/`; Claude Code uses `~/.claude/skills/`. Install the CLI separately. The setup skill is included in the plugin. The repository includes portable Agent Plugins, Codex and Claude manifests; local stdio plugins are not automatically listed in hosted plugin directories.
139
+
140
+ You can also install the skill with the [open skills installer](https://github.com/vercel-labs/skills):
141
+
142
+ ```sh
143
+ npx skills add xplormityai/searchdock-cli --skill searchdock
144
+ ```
145
+
146
+ [`server.json`](https://github.com/xplormityai/searchdock-cli/blob/main/server.json) prepares a listing in the MCP Registry under `io.github.xplormityai/searchdock-cli`. Registry publication requires the npm package to be live and namespace authentication; the metadata file alone does not create a listing.
147
+
148
+ ## What the Google API can and cannot tell you
149
+
150
+ | Available | Requires Search Console UI or an export |
151
+ | --- | --- |
152
+ | Clicks, impressions, CTR, average position | Request indexing |
153
+ | Top queries/pages and date/device/country breakdowns | Test a live URL |
154
+ | Exact brand-query performance | Full Page indexing exclusions table |
155
+ | Sitemap processing status | Manual actions and security issues |
156
+ | Google's indexed version of specific URLs | Guaranteed current ranking or indexing |
157
+
158
+ SearchDock's report flags returned sitemap errors/warnings, pending processing and non-PASS verdicts for the URLs you inspect. It is not a complete technical SEO audit, and it does not provide invented SEO/AEO/GEO scores.
159
+
160
+ ## JavaScript API
161
+
162
+ ```js
163
+ import { selectedContext } from 'searchdock-cli';
164
+
165
+ const { adapter, site } = await selectedContext({ profile: 'default' });
166
+ const result = await adapter.analytics(site, { days: 28, dimensions: ['page'] });
167
+ console.log(result.rows);
168
+ ```
169
+
170
+ The provider registry declares capabilities separately. Bing can be added as an adapter without changing the CLI, MCP or Python distribution model. Provider-specific differences must remain explicit. See [architecture](https://github.com/xplormityai/searchdock-cli/blob/main/docs/architecture.md).
171
+
172
+ ## Develop and release
173
+
174
+ ```sh
175
+ npm ci
176
+ npm run build
177
+ npm test
178
+ npm run check
179
+ python -m pip install build twine
180
+ npm run release:artifacts
181
+ python -m twine check dist/releases/searchdock_cli-0.1.1-py3-none-any.whl dist/releases/searchdock_cli-0.1.1.tar.gz
182
+ ```
183
+
184
+ [Release instructions](https://github.com/xplormityai/searchdock-cli/blob/main/docs/releasing.md) cover npm/PyPI accounts, OIDC trusted publishing, versioning and GitHub release artifacts. Package creation alone does not publish anything.
185
+
186
+ Built by **Xplormity Collective**. [MIT license](https://github.com/xplormityai/searchdock-cli/blob/main/LICENSE).
@@ -0,0 +1,166 @@
1
+ # SearchDock CLI — Google Search Console CLI
2
+
3
+ Read Google Search Console analytics, inspect indexed URLs, and monitor sitemaps from your terminal or AI agent.
4
+
5
+ SearchDock is open source, runs locally, and requests read-only Google access. Use the same core through npm, Python, MCP, a Codex or Claude Code plugin, or a standalone agent skill. **Bing Webmaster Tools support is planned.**
6
+
7
+ ## Install
8
+
9
+ Node.js **22 or later** is required for every distribution.
10
+
11
+ Packages: [npm](https://www.npmjs.com/package/searchdock-cli) · [PyPI](https://pypi.org/project/searchdock-cli/).
12
+
13
+ ```sh
14
+ # npm
15
+ npm install --global searchdock-cli
16
+ searchdock --help
17
+
18
+ # No global installation
19
+ npx --yes searchdock-cli@0.1.1 --help
20
+
21
+ # Python; Node.js is still required
22
+ pipx install searchdock-cli
23
+ # Alternatively: python -m pip install searchdock-cli
24
+ ```
25
+
26
+ The Python package is a launcher containing the exact same JavaScript runtime. It has no separate Google implementation. If you install both packages, use `python -m searchdock_cli` to select the Python launcher explicitly.
27
+
28
+ To run from source:
29
+
30
+ ```sh
31
+ git clone https://github.com/xplormityai/searchdock-cli.git
32
+ cd searchdock-cli
33
+ npm ci
34
+ npm run build
35
+ node dist/cli.cjs --help
36
+ ```
37
+
38
+ ## Connect Google Search Console
39
+
40
+ Create a Google OAuth **Desktop app** client in your own Google Cloud project, enable the Search Console API, and download the client JSON. See [Google setup](https://github.com/xplormityai/searchdock-cli/blob/main/docs/google-setup.md) for the steps and testing-mode limits. No shared developer credentials are included.
41
+
42
+ ```sh
43
+ searchdock auth login --client-file /path/to/desktop-client.json
44
+ searchdock sites list
45
+ searchdock sites use sc-domain:example.com
46
+ searchdock auth status
47
+ ```
48
+
49
+ Google opens a local browser consent flow. SearchDock uses PKCE, validates the callback state, and listens only on `127.0.0.1`. It requests `webmasters.readonly` and keeps the refresh token in your operating system's per-user configuration directory, outside this repository. Credentials are stored as permission-protected local JSON, **not encrypted by SearchDock**. See [privacy](https://github.com/xplormityai/searchdock-cli/blob/main/docs/privacy.md).
50
+
51
+ ## Commands
52
+
53
+ ```sh
54
+ # Search performance and top queries
55
+ searchdock analytics --days 28
56
+ searchdock analytics --dimensions page --days 28 --json
57
+ searchdock analytics --dimensions date --start 2026-09-01 --end 2026-09-30
58
+
59
+ # Exact, case-insensitive brand queries
60
+ searchdock analytics --brand "Your Brand" --json
61
+
62
+ # Sitemaps and Google's indexed URL status
63
+ searchdock sitemaps
64
+ searchdock inspect https://example.com/
65
+
66
+ # Combined report, including only the URLs you specify
67
+ searchdock report --urls https://example.com/,https://example.com/about --json
68
+ searchdock report --output ./private-report.json
69
+
70
+ # Multiple accounts/sites
71
+ searchdock auth login --client-file /path/to/client.json --profile work
72
+ searchdock sites use https://example.com/ --profile work
73
+ searchdock analytics --profile work --site https://example.com/ --json
74
+
75
+ # Diagnostics and local credential removal
76
+ searchdock doctor
77
+ searchdock auth logout
78
+ ```
79
+
80
+ `--json` writes machine-readable results to stdout and errors to stderr with a nonzero exit status. `--output` saves JSON to a **new** file and refuses to overwrite an existing one. Keep private reports out of Git yourself. CSV is not yet supported. For URLs containing commas, use the MCP `urls` array or the JavaScript API for batch inspection.
81
+
82
+ Report windows default to 28 days ending three days before today in **Pacific Time**, to allow for Search Console processing. You can specify exact dates. Finalized data may still lag. Pagination supports up to 100,000 requested rows, but Google's API returns top rows and omits some anonymized query data. Missing rows do not prove zero demand; zero impressions make average position meaningless.
83
+
84
+ ## AI agents and MCP
85
+
86
+ SearchDock provides five read-only MCP tools: `searchdock_sites`, `searchdock_analytics`, `searchdock_sitemaps`, `searchdock_inspect`, and `searchdock_report`. Authenticate locally first; MCP tools do not start consent or change account settings.
87
+
88
+ Add this stdio server to any compatible MCP client:
89
+
90
+ ```json
91
+ {
92
+ "mcpServers": {
93
+ "searchdock": {
94
+ "command": "npx",
95
+ "args": ["--yes", "searchdock-cli@0.1.1", "mcp"]
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ For a source checkout, set `command` to `node` and `args` to `["/absolute/path/searchdock-cli/dist/cli.cjs", "mcp"]`. Windows clients that launch `npx.cmd` through a shell may need `command: "cmd"` and `args: ["/c", "npx", "--yes", "searchdock-cli@0.1.1", "mcp"]`. Use your client's Windows configuration guidance.
102
+
103
+ Plugins use the same pinned npm version:
104
+
105
+ ```sh
106
+ # Codex CLI
107
+ codex plugin marketplace add xplormityai/searchdock-cli
108
+ codex plugin add searchdock@searchdock
109
+ ```
110
+
111
+ In Claude Code:
112
+
113
+ ```text
114
+ /plugin marketplace add xplormityai/searchdock-cli
115
+ /plugin install searchdock@searchdock
116
+ ```
117
+
118
+ For a standalone skill, copy [`skills/searchdock`](https://github.com/xplormityai/searchdock-cli/blob/main/skills/searchdock) into your agent's skills directory. Codex uses `~/.agents/skills/`; Claude Code uses `~/.claude/skills/`. Install the CLI separately. The setup skill is included in the plugin. The repository includes portable Agent Plugins, Codex and Claude manifests; local stdio plugins are not automatically listed in hosted plugin directories.
119
+
120
+ You can also install the skill with the [open skills installer](https://github.com/vercel-labs/skills):
121
+
122
+ ```sh
123
+ npx skills add xplormityai/searchdock-cli --skill searchdock
124
+ ```
125
+
126
+ [`server.json`](https://github.com/xplormityai/searchdock-cli/blob/main/server.json) prepares a listing in the MCP Registry under `io.github.xplormityai/searchdock-cli`. Registry publication requires the npm package to be live and namespace authentication; the metadata file alone does not create a listing.
127
+
128
+ ## What the Google API can and cannot tell you
129
+
130
+ | Available | Requires Search Console UI or an export |
131
+ | --- | --- |
132
+ | Clicks, impressions, CTR, average position | Request indexing |
133
+ | Top queries/pages and date/device/country breakdowns | Test a live URL |
134
+ | Exact brand-query performance | Full Page indexing exclusions table |
135
+ | Sitemap processing status | Manual actions and security issues |
136
+ | Google's indexed version of specific URLs | Guaranteed current ranking or indexing |
137
+
138
+ SearchDock's report flags returned sitemap errors/warnings, pending processing and non-PASS verdicts for the URLs you inspect. It is not a complete technical SEO audit, and it does not provide invented SEO/AEO/GEO scores.
139
+
140
+ ## JavaScript API
141
+
142
+ ```js
143
+ import { selectedContext } from 'searchdock-cli';
144
+
145
+ const { adapter, site } = await selectedContext({ profile: 'default' });
146
+ const result = await adapter.analytics(site, { days: 28, dimensions: ['page'] });
147
+ console.log(result.rows);
148
+ ```
149
+
150
+ The provider registry declares capabilities separately. Bing can be added as an adapter without changing the CLI, MCP or Python distribution model. Provider-specific differences must remain explicit. See [architecture](https://github.com/xplormityai/searchdock-cli/blob/main/docs/architecture.md).
151
+
152
+ ## Develop and release
153
+
154
+ ```sh
155
+ npm ci
156
+ npm run build
157
+ npm test
158
+ npm run check
159
+ python -m pip install build twine
160
+ npm run release:artifacts
161
+ python -m twine check dist/releases/searchdock_cli-0.1.1-py3-none-any.whl dist/releases/searchdock_cli-0.1.1.tar.gz
162
+ ```
163
+
164
+ [Release instructions](https://github.com/xplormityai/searchdock-cli/blob/main/docs/releasing.md) cover npm/PyPI accounts, OIDC trusted publishing, versioning and GitHub release artifacts. Package creation alone does not publish anything.
165
+
166
+ Built by **Xplormity Collective**. [MIT license](https://github.com/xplormityai/searchdock-cli/blob/main/LICENSE).
@@ -0,0 +1,30 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "searchdock-cli"
7
+ version = "0.1.1"
8
+ description = "Google Search Console CLI with agent skills and MCP support. Requires Node.js 22+."
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [{name = "Xplormity Collective", email = "xplormityai@gmail.com"}]
14
+ keywords = ["google-search-console", "seo", "cli", "mcp", "search-analytics"]
15
+ classifiers = ["Environment :: Console", "Programming Language :: Python :: 3", "Operating System :: OS Independent", "Topic :: Internet :: WWW/HTTP"]
16
+
17
+ [project.urls]
18
+ Homepage = "https://github.com/xplormityai/searchdock-cli"
19
+ Documentation = "https://github.com/xplormityai/searchdock-cli#readme"
20
+ Issues = "https://github.com/xplormityai/searchdock-cli/issues"
21
+ Source = "https://github.com/xplormityai/searchdock-cli"
22
+
23
+ [project.scripts]
24
+ searchdock = "searchdock_cli:main"
25
+
26
+ [tool.setuptools.packages.find]
27
+ where = ["src"]
28
+
29
+ [tool.setuptools.package-data]
30
+ searchdock_cli = ["_core/cli.cjs", "_core/THIRD_PARTY_NOTICES.md"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,32 @@
1
+ """Python launcher for the shared SearchDock Node.js core."""
2
+ from pathlib import Path
3
+ import shutil
4
+ import subprocess
5
+ import sys
6
+
7
+ from ._version import __version__
8
+
9
+
10
+ def main():
11
+ node = shutil.which('node')
12
+ if not node:
13
+ print('SearchDock requires Node.js 22 or later. Install it from https://nodejs.org/', file=sys.stderr)
14
+ return 1
15
+ try:
16
+ version = subprocess.check_output([node, '--version'], text=True).strip()
17
+ if int(version.lstrip('v').split('.')[0]) < 22:
18
+ raise ValueError()
19
+ except (OSError, ValueError, subprocess.CalledProcessError):
20
+ print('SearchDock requires Node.js 22 or later.', file=sys.stderr)
21
+ return 1
22
+ core = Path(__file__).parent / '_core/cli.cjs'
23
+ if not core.is_file():
24
+ print('The SearchDock runtime is missing. Reinstall the package.', file=sys.stderr)
25
+ return 1
26
+ try:
27
+ return subprocess.call([node, str(core), *sys.argv[1:]])
28
+ except KeyboardInterrupt:
29
+ return 130
30
+ except OSError:
31
+ print('Could not start the SearchDock runtime.', file=sys.stderr)
32
+ return 1
@@ -0,0 +1,3 @@
1
+ from . import main
2
+
3
+ raise SystemExit(main())
@@ -0,0 +1,228 @@
1
+ # Bundled third-party notices
2
+
3
+
4
+ ## @modelcontextprotocol/sdk 1.32.1
5
+
6
+ License: MIT
7
+
8
+
9
+ MIT License
10
+
11
+ Copyright (c) 2024 Anthropic, PBC
12
+
13
+ Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ of this software and associated documentation files (the "Software"), to deal
15
+ in the Software without restriction, including without limitation the rights
16
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ copies of the Software, and to permit persons to whom the Software is
18
+ furnished to do so, subject to the following conditions:
19
+
20
+ The above copyright notice and this permission notice shall be included in all
21
+ copies or substantial portions of the Software.
22
+
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ SOFTWARE.
30
+
31
+
32
+ ## ajv 8.20.0
33
+
34
+ License: MIT
35
+
36
+
37
+ The MIT License (MIT)
38
+
39
+ Copyright (c) 2015-2021 Evgeny Poberezkin
40
+
41
+ Permission is hereby granted, free of charge, to any person obtaining a copy
42
+ of this software and associated documentation files (the "Software"), to deal
43
+ in the Software without restriction, including without limitation the rights
44
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
45
+ copies of the Software, and to permit persons to whom the Software is
46
+ furnished to do so, subject to the following conditions:
47
+
48
+ The above copyright notice and this permission notice shall be included in all
49
+ copies or substantial portions of the Software.
50
+
51
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
52
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
53
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
54
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
55
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
56
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
57
+ SOFTWARE.
58
+
59
+
60
+
61
+ ## ajv-formats 3.0.1
62
+
63
+ License: MIT
64
+
65
+
66
+ MIT License
67
+
68
+ Copyright (c) 2020 Evgeny Poberezkin
69
+
70
+ Permission is hereby granted, free of charge, to any person obtaining a copy
71
+ of this software and associated documentation files (the "Software"), to deal
72
+ in the Software without restriction, including without limitation the rights
73
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
74
+ copies of the Software, and to permit persons to whom the Software is
75
+ furnished to do so, subject to the following conditions:
76
+
77
+ The above copyright notice and this permission notice shall be included in all
78
+ copies or substantial portions of the Software.
79
+
80
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
81
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
82
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
83
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
84
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
85
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
86
+ SOFTWARE.
87
+
88
+
89
+ ## fast-deep-equal 3.1.3
90
+
91
+ License: MIT
92
+
93
+
94
+ MIT License
95
+
96
+ Copyright (c) 2017 Evgeny Poberezkin
97
+
98
+ Permission is hereby granted, free of charge, to any person obtaining a copy
99
+ of this software and associated documentation files (the "Software"), to deal
100
+ in the Software without restriction, including without limitation the rights
101
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
102
+ copies of the Software, and to permit persons to whom the Software is
103
+ furnished to do so, subject to the following conditions:
104
+
105
+ The above copyright notice and this permission notice shall be included in all
106
+ copies or substantial portions of the Software.
107
+
108
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
109
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
110
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
111
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
112
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
113
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
114
+ SOFTWARE.
115
+
116
+
117
+ ## fast-uri 3.1.8
118
+
119
+ License: BSD-3-Clause
120
+
121
+
122
+ Copyright (c) 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae
123
+ Copyright (c) 2021-present The Fastify team <https://github.com/fastify/fastify#team>
124
+ All rights reserved.
125
+
126
+ Redistribution and use in source and binary forms, with or without
127
+ modification, are permitted provided that the following conditions are met:
128
+ * Redistributions of source code must retain the above copyright
129
+ notice, this list of conditions and the following disclaimer.
130
+ * Redistributions in binary form must reproduce the above copyright
131
+ notice, this list of conditions and the following disclaimer in the
132
+ documentation and/or other materials provided with the distribution.
133
+ * The names of any contributors may not be used to endorse or promote
134
+ products derived from this software without specific prior written
135
+ permission.
136
+
137
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
138
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
139
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
140
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
141
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
142
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
143
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
144
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
145
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
146
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
147
+
148
+ * * *
149
+
150
+ The complete list of contributors can be found at:
151
+ - https://github.com/garycourt/uri-js/graphs/contributors
152
+
153
+ ## json-schema-traverse 1.0.0
154
+
155
+ License: MIT
156
+
157
+
158
+ MIT License
159
+
160
+ Copyright (c) 2017 Evgeny Poberezkin
161
+
162
+ Permission is hereby granted, free of charge, to any person obtaining a copy
163
+ of this software and associated documentation files (the "Software"), to deal
164
+ in the Software without restriction, including without limitation the rights
165
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
166
+ copies of the Software, and to permit persons to whom the Software is
167
+ furnished to do so, subject to the following conditions:
168
+
169
+ The above copyright notice and this permission notice shall be included in all
170
+ copies or substantial portions of the Software.
171
+
172
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
173
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
174
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
175
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
176
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
177
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
178
+ SOFTWARE.
179
+
180
+
181
+ ## zod 3.25.76
182
+
183
+ License: MIT
184
+
185
+
186
+ MIT License
187
+
188
+ Copyright (c) 2025 Colin McDonnell
189
+
190
+ Permission is hereby granted, free of charge, to any person obtaining a copy
191
+ of this software and associated documentation files (the "Software"), to deal
192
+ in the Software without restriction, including without limitation the rights
193
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
194
+ copies of the Software, and to permit persons to whom the Software is
195
+ furnished to do so, subject to the following conditions:
196
+
197
+ The above copyright notice and this permission notice shall be included in all
198
+ copies or substantial portions of the Software.
199
+
200
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
201
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
202
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
203
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
204
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
205
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
206
+ SOFTWARE.
207
+
208
+
209
+ ## zod-to-json-schema 3.25.2
210
+
211
+ License: ISC
212
+
213
+
214
+ ISC License
215
+
216
+ Copyright (c) 2020, Stefan Terdell
217
+
218
+ Permission to use, copy, modify, and/or distribute this software for any
219
+ purpose with or without fee is hereby granted, provided that the above
220
+ copyright notice and this permission notice appear in all copies.
221
+
222
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
223
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
224
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
225
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
226
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
227
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
228
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.