mcp-internet-archive 1.0.0 → 3.0.0
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.
- package/CHANGELOG.md +149 -0
- package/LICENSE +24 -0
- package/README.md +194 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +181 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +206 -0
- package/dist/cli.js.map +1 -0
- package/dist/contexts.d.ts +12 -0
- package/dist/contexts.d.ts.map +1 -0
- package/dist/contexts.js +95 -0
- package/dist/contexts.js.map +1 -0
- package/dist/schemas.d.ts +53 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +51 -0
- package/dist/schemas.js.map +1 -0
- package/dist/tools/cache.d.ts +28 -0
- package/dist/tools/cache.d.ts.map +1 -0
- package/dist/tools/cache.js +40 -0
- package/dist/tools/cache.js.map +1 -0
- package/dist/tools/compare.d.ts +34 -0
- package/dist/tools/compare.d.ts.map +1 -0
- package/dist/tools/compare.js +96 -0
- package/dist/tools/compare.js.map +1 -0
- package/dist/tools/context.d.ts +25 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +6 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/retrieve.d.ts +34 -0
- package/dist/tools/retrieve.d.ts.map +1 -0
- package/dist/tools/retrieve.js +101 -0
- package/dist/tools/retrieve.js.map +1 -0
- package/dist/tools/save.d.ts +31 -0
- package/dist/tools/save.d.ts.map +1 -0
- package/dist/tools/save.js +132 -0
- package/dist/tools/save.js.map +1 -0
- package/dist/tools/screenshots.d.ts +30 -0
- package/dist/tools/screenshots.d.ts.map +1 -0
- package/dist/tools/screenshots.js +83 -0
- package/dist/tools/screenshots.js.map +1 -0
- package/dist/tools/search.d.ts +51 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +184 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/status.d.ts +26 -0
- package/dist/tools/status.d.ts.map +1 -0
- package/dist/tools/status.js +93 -0
- package/dist/tools/status.js.map +1 -0
- package/dist/utils/cache.d.ts +96 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +241 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/http.d.ts +22 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +42 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/rate-limit.d.ts +45 -0
- package/dist/utils/rate-limit.d.ts.map +1 -0
- package/dist/utils/rate-limit.js +62 -0
- package/dist/utils/rate-limit.js.map +1 -0
- package/dist/utils/validation.d.ts +14 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +22 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +88 -10
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
## [3.0.0](https://github.com/Mearman/mcp-wayback-machine/compare/v2.2.0...v3.0.0) (2026-05-09)
|
|
2
|
+
|
|
3
|
+
### ⚠ BREAKING CHANGES
|
|
4
|
+
|
|
5
|
+
* v3.0.0 major release - complete toolchain migration
|
|
6
|
+
from Yarn/Biome to pnpm/ESLint, native Node type stripping, DI-based
|
|
7
|
+
tool architecture, per-endpoint cache TTLs, SPN2 advanced options,
|
|
8
|
+
CDX advanced features, and MCP Registry integration.
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* correct mcpName to match GitHub repo name ([7ad4e45](https://github.com/Mearman/mcp-wayback-machine/commit/7ad4e453653e3ae41176c6fc77b7a200f4c75385))
|
|
13
|
+
|
|
14
|
+
## [2.2.0](https://github.com/Mearman/mcp-wayback-machine/compare/v2.1.1...v2.2.0) (2026-05-09)
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* add cache management, screenshot listing, and snapshot comparison tools ([cd8c122](https://github.com/Mearman/mcp-wayback-machine/commit/cd8c122ca8ba618386b75638dc56dc0f9cbd45a5))
|
|
19
|
+
* add server.json generation script for MCP Registry ([a578da7](https://github.com/Mearman/mcp-wayback-machine/commit/a578da74e72a75caa2cbf45ed2e0ea1403e24e16))
|
|
20
|
+
* migrate toolchain and rewrite for strict TypeScript ([008434e](https://github.com/Mearman/mcp-wayback-machine/commit/008434ebac4216d3e30de7083c22100bbcf9fb5a))
|
|
21
|
+
|
|
22
|
+
### Refactoring
|
|
23
|
+
|
|
24
|
+
* extract shared response schemas ([9bf978d](https://github.com/Mearman/mcp-wayback-machine/commit/9bf978dc99455aa957db8027a96504b35b2af3be))
|
|
25
|
+
|
|
26
|
+
### Documentation
|
|
27
|
+
|
|
28
|
+
* update readme for v2 feature set ([e315381](https://github.com/Mearman/mcp-wayback-machine/commit/e315381f72b0af043e32695459202ad8437148c5))
|
|
29
|
+
|
|
30
|
+
### Tests
|
|
31
|
+
|
|
32
|
+
* cover SPN2 options and CDX advanced features ([09e50a0](https://github.com/Mearman/mcp-wayback-machine/commit/09e50a0bbea5a41246adaab2be8f393b74e19fe8))
|
|
33
|
+
|
|
34
|
+
### Chores
|
|
35
|
+
|
|
36
|
+
* remove tsconfig.tests.json ([e683d44](https://github.com/Mearman/mcp-wayback-machine/commit/e683d4454ada39dd53274a74cc38c2ea547bc839))
|
|
37
|
+
|
|
38
|
+
## [2.1.1](https://github.com/Mearman/mcp-wayback-machine/compare/v2.1.0...v2.1.1) (2026-05-09)
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* disable provenance for GitHub Packages publish ([112607c](https://github.com/Mearman/mcp-wayback-machine/commit/112607c3902db407b03cdb556a3afc3ff7f58df3))
|
|
43
|
+
|
|
44
|
+
## [2.1.0](https://github.com/Mearman/mcp-wayback-machine/compare/v2.0.0...v2.1.0) (2026-05-09)
|
|
45
|
+
|
|
46
|
+
### Features
|
|
47
|
+
|
|
48
|
+
* add in-memory and disk request caching for read operations ([d901348](https://github.com/Mearman/mcp-wayback-machine/commit/d90134856936bd2e39c71692ad978a13098d3b49))
|
|
49
|
+
|
|
50
|
+
### Bug Fixes
|
|
51
|
+
|
|
52
|
+
* pass NPM_TOKEN to semantic-release for npm auth verification ([043c694](https://github.com/Mearman/mcp-wayback-machine/commit/043c694312e34b3a563a419245e1b9e945a92259))
|
|
53
|
+
* propagate semantic-release exit code in CI release step ([d34008d](https://github.com/Mearman/mcp-wayback-machine/commit/d34008dbeb663383908828c66dbd8008f2972bf7))
|
|
54
|
+
* split eslint config into per-context tsconfig resolution ([54a33db](https://github.com/Mearman/mcp-wayback-machine/commit/54a33dbb84b87ab1c223f31822a9cb495188f220))
|
|
55
|
+
|
|
56
|
+
### Refactoring
|
|
57
|
+
|
|
58
|
+
* rewrite source for strict typescript and eslint compliance ([58a8415](https://github.com/Mearman/mcp-wayback-machine/commit/58a8415595eff5827143d59075fcdd2b9582d27b)), closes [#3](https://github.com/Mearman/mcp-wayback-machine/issues/3) [#18](https://github.com/Mearman/mcp-wayback-machine/issues/18)
|
|
59
|
+
|
|
60
|
+
### Documentation
|
|
61
|
+
|
|
62
|
+
* update README for pnpm, caching, and Node 22+ ([68c2156](https://github.com/Mearman/mcp-wayback-machine/commit/68c2156b31b33a0ed20323956b140d1087f48130))
|
|
63
|
+
|
|
64
|
+
### Tests
|
|
65
|
+
|
|
66
|
+
* add node:test suite with 80% coverage threshold ([97443ba](https://github.com/Mearman/mcp-wayback-machine/commit/97443bace96a552bf271858004313f8478be3215))
|
|
67
|
+
|
|
68
|
+
### CI
|
|
69
|
+
|
|
70
|
+
* add GitHub Packages publishing alongside npmjs ([ab58f25](https://github.com/Mearman/mcp-wayback-machine/commit/ab58f25a1a1a4e7d02213a4d4f09ba30052cfa5c))
|
|
71
|
+
* rewrite workflow for pnpm, matrix builds, and OIDC publishing ([0dcf8e5](https://github.com/Mearman/mcp-wayback-machine/commit/0dcf8e57cfc2b5c08f8ebe890cfb59e775e516d7))
|
|
72
|
+
|
|
73
|
+
### Chores
|
|
74
|
+
|
|
75
|
+
* migrate toolchain from yarn/biome to pnpm/eslint/turbo ([26dac1c](https://github.com/Mearman/mcp-wayback-machine/commit/26dac1c557e8704f68bb9e03713a8d7a7cfadc73))
|
|
76
|
+
* remove stale workflows, template artifacts, and vitest tests ([928d87b](https://github.com/Mearman/mcp-wayback-machine/commit/928d87b97046e3c01ce0a3ec9d35c8ef43b844df))
|
|
77
|
+
|
|
78
|
+
# [2.0.0](https://github.com/Mearman/mcp-wayback-machine/compare/v1.0.4...v2.0.0) (2025-06-05)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### Bug Fixes
|
|
82
|
+
|
|
83
|
+
* replace GitHub license badge with CC BY-NC-SA 4.0 badge ([feda5a0](https://github.com/Mearman/mcp-wayback-machine/commit/feda5a0d5ee7807475118af8b2c123c4668c29f2))
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### Features
|
|
87
|
+
|
|
88
|
+
* add CLI support for direct command-line usage ([94a1bf8](https://github.com/Mearman/mcp-wayback-machine/commit/94a1bf8e3dd8386b29e67bd5295f68b2f63e7d98))
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### BREAKING CHANGES
|
|
92
|
+
|
|
93
|
+
* The tool now checks for CLI arguments and will run in CLI mode if any are provided
|
|
94
|
+
|
|
95
|
+
## [1.0.4](https://github.com/Mearman/mcp-wayback-machine/compare/v1.0.3...v1.0.4) (2025-06-04)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### Bug Fixes
|
|
99
|
+
|
|
100
|
+
* use lowercase package name and correct registry for GitHub Packages ([0a3b4ba](https://github.com/Mearman/mcp-wayback-machine/commit/0a3b4ba9958f1680245eb5b5b30f84ff82475631))
|
|
101
|
+
|
|
102
|
+
## [1.0.3](https://github.com/Mearman/mcp-wayback-machine/compare/v1.0.2...v1.0.3) (2025-06-04)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### Bug Fixes
|
|
106
|
+
|
|
107
|
+
* skip prepublishOnly script for GitHub Packages publish ([25c3c3f](https://github.com/Mearman/mcp-wayback-machine/commit/25c3c3fc104f7c0c55cf4a8e9bf3d5952aa91884))
|
|
108
|
+
|
|
109
|
+
## [1.0.2](https://github.com/Mearman/mcp-wayback-machine/compare/v1.0.1...v1.0.2) (2025-06-04)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
### Bug Fixes
|
|
113
|
+
|
|
114
|
+
* add version detection for GitHub Packages publishing ([4298868](https://github.com/Mearman/mcp-wayback-machine/commit/429886820cb90238249fdf8563c203fff55f5382))
|
|
115
|
+
|
|
116
|
+
## [1.0.1](https://github.com/Mearman/mcp-wayback-machine/compare/v1.0.0...v1.0.1) (2025-06-04)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
### Bug Fixes
|
|
120
|
+
|
|
121
|
+
* restore bin field as object for proper CLI naming ([ab966b2](https://github.com/Mearman/mcp-wayback-machine/commit/ab966b28b01ecd1938a3cf3640922ab7e0d24a16))
|
|
122
|
+
|
|
123
|
+
# 1.0.0 (2025-06-04)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
### Bug Fixes
|
|
127
|
+
|
|
128
|
+
* add packageManager field for Yarn 4 compatibility ([dc1de05](https://github.com/Mearman/mcp-wayback-machine/commit/dc1de05a1a856fd666d9c7711626c664fe249c19))
|
|
129
|
+
* convert bin field to object format for npm compatibility ([9f5ee8a](https://github.com/Mearman/mcp-wayback-machine/commit/9f5ee8ad7b1b1ae4c0cabc6ed5109aaea9b50073))
|
|
130
|
+
* resolve test failures and version compatibility issues ([6b682aa](https://github.com/Mearman/mcp-wayback-machine/commit/6b682aa4569693209f7673112c13bc860021acac))
|
|
131
|
+
* resolve timeout test race condition ([8a6dea1](https://github.com/Mearman/mcp-wayback-machine/commit/8a6dea17ced800eb6bf9826be3473aa767406db6))
|
|
132
|
+
* resolve TypeScript errors in test files ([2877988](https://github.com/Mearman/mcp-wayback-machine/commit/2877988733d6010f1a5e98a1e51760f8c71b63ee))
|
|
133
|
+
* use space indentation for markdown files ([58b359b](https://github.com/Mearman/mcp-wayback-machine/commit/58b359b7dc2b561aba1cc45ef95405d87825756d))
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
### Features
|
|
137
|
+
|
|
138
|
+
* add bin field to enable npx invocation ([1c48881](https://github.com/Mearman/mcp-wayback-machine/commit/1c48881effe427cf3b9bacd9ce32f78912d1a267))
|
|
139
|
+
* apply CC BY-NC-SA 4.0 license with full license file and README badge ([e8c9980](https://github.com/Mearman/mcp-wayback-machine/commit/e8c998056d3e9cbca272204d83c905478a7c9fc6))
|
|
140
|
+
* implement initial MCP server with tool definitions ([377b6e0](https://github.com/Mearman/mcp-wayback-machine/commit/377b6e02773f8ad59115f0097a69201ea8028e84))
|
|
141
|
+
* implement Wayback Machine API integration ([14d70c1](https://github.com/Mearman/mcp-wayback-machine/commit/14d70c1161e0a8cf78dd6011d670007419011c34))
|
|
142
|
+
* initial project setup with plan for Wayback Machine MCP server ([f265ed8](https://github.com/Mearman/mcp-wayback-machine/commit/f265ed824184f009f1d39a6716632337ae1e58c3))
|
|
143
|
+
|
|
144
|
+
# Changelog
|
|
145
|
+
|
|
146
|
+
All notable changes to this project will be documented in this file.
|
|
147
|
+
|
|
148
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
149
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
|
|
2
|
+
|
|
3
|
+
MCP Wayback Machine Server
|
|
4
|
+
Copyright (c) 2025
|
|
5
|
+
|
|
6
|
+
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
|
|
7
|
+
|
|
8
|
+
You are free to:
|
|
9
|
+
- Share — copy and redistribute the material in any medium or format
|
|
10
|
+
- Adapt — remix, transform, and build upon the material
|
|
11
|
+
|
|
12
|
+
Under the following terms:
|
|
13
|
+
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
|
|
14
|
+
- NonCommercial — You may not use the material for commercial purposes.
|
|
15
|
+
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
|
|
16
|
+
|
|
17
|
+
No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
|
|
18
|
+
|
|
19
|
+
Notices:
|
|
20
|
+
You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.
|
|
21
|
+
|
|
22
|
+
No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.
|
|
23
|
+
|
|
24
|
+
For commercial use or licensing inquiries, please contact the copyright holder.
|
package/README.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# MCP Wayback Machine Server
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/mcp-wayback-machine)
|
|
4
|
+
[](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
|
5
|
+
[](https://github.com/Mearman/mcp-wayback-machine/actions)
|
|
6
|
+
|
|
7
|
+
An MCP (Model Context Protocol) server and CLI tool for interacting with the Internet Archive's Wayback Machine. Supports full CDX search, snapshot content retrieval, screenshot listing, snapshot comparison, and optional authentication for higher rate limits.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
### As an MCP server
|
|
12
|
+
|
|
13
|
+
Add to your MCP client configuration (Claude Desktop, VS Code, etc.):
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"mcpServers": {
|
|
18
|
+
"wayback-machine": {
|
|
19
|
+
"command": "npx",
|
|
20
|
+
"args": ["-y", "mcp-wayback-machine"],
|
|
21
|
+
"env": {
|
|
22
|
+
"WAYBACK_ACCESS_KEY": "your-access-key",
|
|
23
|
+
"WAYBACK_SECRET_KEY": "your-secret-key"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The `env` block is optional — the server works anonymously without credentials. See [Credentials](#credentials) for details.
|
|
31
|
+
|
|
32
|
+
### As a CLI tool
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx mcp-wayback-machine save https://example.com
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Or install globally:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install -g mcp-wayback-machine
|
|
42
|
+
wayback save https://example.com
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Tools
|
|
46
|
+
|
|
47
|
+
### `save_url`
|
|
48
|
+
|
|
49
|
+
Archive a URL to the Wayback Machine using the SPN2 API.
|
|
50
|
+
|
|
51
|
+
| Parameter | Required | Description |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| `url` | Yes | The URL to archive |
|
|
54
|
+
| `captureScreenshot` | No | Capture a screenshot as a PNG image |
|
|
55
|
+
| `captureOutlinks` | No | Also archive up to 100 outlinked pages |
|
|
56
|
+
| `ifNotArchivedWithin` | No | Skip if archived within timeframe, e.g. `"30d"` |
|
|
57
|
+
| `jsBehaviorTimeout` | No | Run JavaScript for N seconds before capturing (max 30) |
|
|
58
|
+
| `forceGet` | No | Use simple HTTP GET instead of browser rendering |
|
|
59
|
+
| `delayWbAvailability` | No | Delay indexing ~12 hours to reduce server load |
|
|
60
|
+
|
|
61
|
+
### `get_archived_url`
|
|
62
|
+
|
|
63
|
+
Retrieve an archived snapshot's content and metadata.
|
|
64
|
+
|
|
65
|
+
| Parameter | Required | Description |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| `url` | Yes | The URL to retrieve |
|
|
68
|
+
| `timestamp` | No | Specific timestamp (`YYYYMMDDhhmmss`) or `"latest"` |
|
|
69
|
+
| `modifier` | No | URL modifier: `id_` (raw), `im_` (screenshot), `js_` (JS), `cs_` (CSS) |
|
|
70
|
+
|
|
71
|
+
Returns the snapshot's HTML/content body, content type, archived URL, and timestamp.
|
|
72
|
+
|
|
73
|
+
### `search_archives`
|
|
74
|
+
|
|
75
|
+
Search the CDX API for archived versions of a URL.
|
|
76
|
+
|
|
77
|
+
| Parameter | Required | Description |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| `url` | Yes | The URL pattern to search for |
|
|
80
|
+
| `matchType` | No | `exact`, `prefix`, `host`, or `domain` |
|
|
81
|
+
| `from` | No | Start date (`YYYYMMDD` or `YYYY-MM-DD`) |
|
|
82
|
+
| `to` | No | End date (`YYYYMMDD` or `YYYY-MM-DD`) |
|
|
83
|
+
| `limit` | No | Maximum results (default 10) |
|
|
84
|
+
| `offset` | No | Skip the first N results |
|
|
85
|
+
| `collapse` | No | Collapse duplicates, e.g. `"timestamp:8"` (per hour), `"digest"` |
|
|
86
|
+
| `filter` | No | Filter by field regex, e.g. `["statuscode:200", "!mimetype:image.*"]` |
|
|
87
|
+
| `resolveRevisits` | No | Resolve warc/revisit entries to original metadata |
|
|
88
|
+
| `showDupeCount` | No | Show duplicate count per capture |
|
|
89
|
+
| `page` | No | Page number for pagination |
|
|
90
|
+
| `pageSize` | No | Results per page |
|
|
91
|
+
|
|
92
|
+
### `check_archive_status`
|
|
93
|
+
|
|
94
|
+
Check archival statistics for a URL — capture counts, yearly breakdowns, and first/last capture dates.
|
|
95
|
+
|
|
96
|
+
| Parameter | Required | Description |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| `url` | Yes | The URL to check |
|
|
99
|
+
|
|
100
|
+
### `list_screenshots`
|
|
101
|
+
|
|
102
|
+
List available screenshots for a URL. Screenshots are generated when captures are made with `captureScreenshot: true`.
|
|
103
|
+
|
|
104
|
+
| Parameter | Required | Description |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| `url` | Yes | The URL to find screenshots for |
|
|
107
|
+
| `limit` | No | Maximum results (default 10) |
|
|
108
|
+
|
|
109
|
+
### `compare_snapshots`
|
|
110
|
+
|
|
111
|
+
Compare two archived snapshots of a URL. Fetches the raw content of both and provides a visual diff URL.
|
|
112
|
+
|
|
113
|
+
| Parameter | Required | Description |
|
|
114
|
+
|---|---|---|
|
|
115
|
+
| `url` | Yes | The URL to compare snapshots for |
|
|
116
|
+
| `timestampA` | No | First timestamp. Defaults to oldest available. |
|
|
117
|
+
| `timestampB` | No | Second timestamp. Defaults to newest available. |
|
|
118
|
+
|
|
119
|
+
If no timestamps are provided, automatically selects the oldest and newest available snapshots.
|
|
120
|
+
|
|
121
|
+
### `clear_cache`
|
|
122
|
+
|
|
123
|
+
Clear all cached API responses. Use when fresh data is needed or after saving a new URL.
|
|
124
|
+
|
|
125
|
+
## CLI Usage
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Archive a URL
|
|
129
|
+
wayback save https://example.com
|
|
130
|
+
|
|
131
|
+
# Retrieve archived content
|
|
132
|
+
wayback get https://example.com
|
|
133
|
+
wayback get https://example.com --timestamp 20231225120000
|
|
134
|
+
|
|
135
|
+
# Search archived versions
|
|
136
|
+
wayback search https://example.com --from 2023-01-01 --to 2023-12-31
|
|
137
|
+
wayback search https://example.com --limit 20
|
|
138
|
+
|
|
139
|
+
# Check archival statistics
|
|
140
|
+
wayback status https://example.com
|
|
141
|
+
|
|
142
|
+
# List screenshots
|
|
143
|
+
wayback screenshots https://example.com
|
|
144
|
+
|
|
145
|
+
# Compare two snapshots
|
|
146
|
+
wayback compare https://example.com
|
|
147
|
+
wayback compare https://example.com --timestamp-a 20230101000000 --timestamp-b 20240101000000
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Credentials
|
|
151
|
+
|
|
152
|
+
The server works anonymously by default. For higher SPN2 rate limits, set Internet Archive S3 credentials via environment variables:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
export WAYBACK_ACCESS_KEY="your-access-key"
|
|
156
|
+
export WAYBACK_SECRET_KEY="your-secret-key"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Credentials are only sent on `/save` endpoints. All read operations (retrieve, search, status, screenshots, compare) work without authentication.
|
|
160
|
+
|
|
161
|
+
To obtain credentials, log in to [archive.org](https://archive.org) and visit your account settings to generate S3 access keys.
|
|
162
|
+
|
|
163
|
+
## Technical Details
|
|
164
|
+
|
|
165
|
+
- **Transport**: stdio (MCP client integration)
|
|
166
|
+
- **Caching**: in-memory and disk-based with per-endpoint TTLs:
|
|
167
|
+
- Snapshot content: 24 hours (immutable once captured)
|
|
168
|
+
- Availability, CDX, sparkline: 1 hour (grows but never mutates)
|
|
169
|
+
- Save operations: 30 minutes (idempotent per URL)
|
|
170
|
+
- Save status polling: 30 seconds (changes during active jobs)
|
|
171
|
+
- **Rate limiting**: 15 requests per minute, with automatic Retry-After handling for 429 responses
|
|
172
|
+
- **Validation**: Zod schemas for all inputs and API responses
|
|
173
|
+
- **Node.js 22+** required
|
|
174
|
+
|
|
175
|
+
## Development
|
|
176
|
+
|
|
177
|
+
Requires [pnpm](https://pnpm.io) and Node.js 22+.
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
pnpm install
|
|
181
|
+
pnpm validate # typecheck + lint + test + build
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Resources
|
|
185
|
+
|
|
186
|
+
- [Wayback Machine APIs](https://archive.org/developers/wayback-api.html)
|
|
187
|
+
- [CDX Server Documentation](https://github.com/internetarchive/wayback/tree/master/wayback-cdx-server)
|
|
188
|
+
- [Save Page Now 2 (SPN2) API](https://docs.google.com/document/d/1Nsv52MvSjbLb2PCpHlat0gkzw0EvtSgpKHu4mk0MnrA/)
|
|
189
|
+
|
|
190
|
+
## License
|
|
191
|
+
|
|
192
|
+
[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](http://creativecommons.org/licenses/by-nc-sa/4.0/).
|
|
193
|
+
|
|
194
|
+
[](http://creativecommons.org/licenses/by-nc-sa/4.0/)
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { GetArchivedUrl, getArchivedUrl } from "./tools/retrieve.js";
|
|
5
|
+
import { SaveUrl, saveUrl } from "./tools/save.js";
|
|
6
|
+
import { SearchArchives, searchArchives } from "./tools/search.js";
|
|
7
|
+
import { CheckArchiveStatus, checkArchiveStatus } from "./tools/status.js";
|
|
8
|
+
import { ListScreenshots, listScreenshots } from "./tools/screenshots.js";
|
|
9
|
+
import { ClearCache, clearCache } from "./tools/cache.js";
|
|
10
|
+
import { CompareSnapshots, compareSnapshots } from "./tools/compare.js";
|
|
11
|
+
import { context } from "./contexts.js";
|
|
12
|
+
import pkg from "../package.json" with { type: "json" };
|
|
13
|
+
const VERSION = pkg.version;
|
|
14
|
+
const server = new McpServer({
|
|
15
|
+
name: "mcp-wayback-machine",
|
|
16
|
+
version: VERSION,
|
|
17
|
+
}, {
|
|
18
|
+
capabilities: {
|
|
19
|
+
tools: {},
|
|
20
|
+
},
|
|
21
|
+
instructions: "Interact with the Internet Archive's Wayback Machine to save, retrieve, search, and check the archival status of URLs. " +
|
|
22
|
+
"Supports screenshot retrieval, full CDX search with filtering/pagination, " +
|
|
23
|
+
"and optional authentication for higher rate limits.",
|
|
24
|
+
});
|
|
25
|
+
server.registerTool("save_url", {
|
|
26
|
+
description: "Save a URL to the Wayback Machine for archival using the SPN2 API. " +
|
|
27
|
+
"Supports capturing screenshots, outlinks, and conditional archiving. " +
|
|
28
|
+
"Set WAYBACK_ACCESS_KEY and WAYBACK_SECRET_KEY env vars for higher rate limits.",
|
|
29
|
+
inputSchema: SaveUrl,
|
|
30
|
+
}, async (args) => {
|
|
31
|
+
const result = await saveUrl(args, context);
|
|
32
|
+
let text = result.message;
|
|
33
|
+
if (result.archivedUrl !== undefined) {
|
|
34
|
+
text += `\n\nArchived URL: ${result.archivedUrl}`;
|
|
35
|
+
}
|
|
36
|
+
if (result.timestamp !== undefined) {
|
|
37
|
+
text += `\nTimestamp: ${result.timestamp}`;
|
|
38
|
+
}
|
|
39
|
+
if (result.jobId !== undefined) {
|
|
40
|
+
text += `\nJob ID: ${result.jobId}`;
|
|
41
|
+
}
|
|
42
|
+
return { content: [{ type: "text", text }] };
|
|
43
|
+
});
|
|
44
|
+
server.registerTool("get_archived_url", {
|
|
45
|
+
description: "Retrieve an archived version of a URL from the Wayback Machine. " +
|
|
46
|
+
"Returns the snapshot content. Supports URL modifiers: " +
|
|
47
|
+
"id_ (raw content), im_ (screenshot image), js_ (JavaScript), cs_ (CSS).",
|
|
48
|
+
inputSchema: GetArchivedUrl,
|
|
49
|
+
}, async (args) => {
|
|
50
|
+
const result = await getArchivedUrl(args, context);
|
|
51
|
+
let text = result.message;
|
|
52
|
+
if (result.archivedUrl !== undefined) {
|
|
53
|
+
text += `\n\nArchived URL: ${result.archivedUrl}`;
|
|
54
|
+
}
|
|
55
|
+
if (result.timestamp !== undefined) {
|
|
56
|
+
text += `\nTimestamp: ${result.timestamp}`;
|
|
57
|
+
}
|
|
58
|
+
if (result.available !== undefined) {
|
|
59
|
+
text += `\nAvailable: ${result.available ? "Yes" : "No"}`;
|
|
60
|
+
}
|
|
61
|
+
if (result.content !== undefined) {
|
|
62
|
+
text += `\n\nContent-Type: ${result.contentType ?? "unknown"}`;
|
|
63
|
+
text += `\n\n${result.content}`;
|
|
64
|
+
}
|
|
65
|
+
return { content: [{ type: "text", text }] };
|
|
66
|
+
});
|
|
67
|
+
server.registerTool("search_archives", {
|
|
68
|
+
description: "Search the Wayback Machine CDX API for archived versions of a URL. " +
|
|
69
|
+
"Supports match types (exact/prefix/host/domain), date range filtering, " +
|
|
70
|
+
"collapsing duplicates, field filtering, pagination, and duplicate counting.",
|
|
71
|
+
inputSchema: SearchArchives,
|
|
72
|
+
}, async (args) => {
|
|
73
|
+
const result = await searchArchives(args, context);
|
|
74
|
+
let text = result.message;
|
|
75
|
+
if (result.results !== undefined && result.results.length > 0) {
|
|
76
|
+
text += "\n\nResults:";
|
|
77
|
+
for (const archive of result.results) {
|
|
78
|
+
text += `\n\n- Date: ${archive.date}`;
|
|
79
|
+
text += `\n URL: ${archive.archivedUrl}`;
|
|
80
|
+
text += `\n Status: ${archive.statusCode}`;
|
|
81
|
+
text += `\n Type: ${archive.mimeType}`;
|
|
82
|
+
if (archive.duplicateCount !== undefined) {
|
|
83
|
+
text += `\n Duplicates: ${String(archive.duplicateCount)}`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { content: [{ type: "text", text }] };
|
|
88
|
+
});
|
|
89
|
+
server.registerTool("check_archive_status", {
|
|
90
|
+
description: "Check if a URL has been archived by the Wayback Machine and get capture " +
|
|
91
|
+
"statistics including yearly breakdowns.",
|
|
92
|
+
inputSchema: CheckArchiveStatus,
|
|
93
|
+
}, async (args) => {
|
|
94
|
+
const result = await checkArchiveStatus(args, context);
|
|
95
|
+
let text = result.message;
|
|
96
|
+
if (result.isArchived) {
|
|
97
|
+
if (result.firstCapture !== undefined) {
|
|
98
|
+
text += `\n\nFirst captured: ${result.firstCapture}`;
|
|
99
|
+
}
|
|
100
|
+
if (result.lastCapture !== undefined) {
|
|
101
|
+
text += `\nLast captured: ${result.lastCapture}`;
|
|
102
|
+
}
|
|
103
|
+
if (result.totalCaptures !== undefined) {
|
|
104
|
+
text += `\nTotal captures: ${String(result.totalCaptures)}`;
|
|
105
|
+
}
|
|
106
|
+
if (result.yearlyCaptures !== undefined &&
|
|
107
|
+
Object.keys(result.yearlyCaptures).length > 0) {
|
|
108
|
+
text += "\n\nCaptures by year:";
|
|
109
|
+
for (const [year, count] of Object.entries(result.yearlyCaptures)) {
|
|
110
|
+
text += `\n ${year}: ${String(count)}`;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { content: [{ type: "text", text }] };
|
|
115
|
+
});
|
|
116
|
+
server.registerTool("list_screenshots", {
|
|
117
|
+
description: "List available screenshots for a URL from the Wayback Machine. " +
|
|
118
|
+
"Screenshots are generated when captures are made with capture_screenshot=1.",
|
|
119
|
+
inputSchema: ListScreenshots,
|
|
120
|
+
}, async (args) => {
|
|
121
|
+
const result = await listScreenshots(args, context);
|
|
122
|
+
let text = result.message;
|
|
123
|
+
if (result.screenshots !== undefined && result.screenshots.length > 0) {
|
|
124
|
+
text += "\n\nScreenshots:";
|
|
125
|
+
for (const screenshot of result.screenshots) {
|
|
126
|
+
text += `\n\n- Date: ${screenshot.date}`;
|
|
127
|
+
text += `\n Screenshot: ${screenshot.screenshotUrl}`;
|
|
128
|
+
text += `\n Original: ${screenshot.originalUrl}`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return { content: [{ type: "text", text }] };
|
|
132
|
+
});
|
|
133
|
+
server.registerTool("clear_cache", {
|
|
134
|
+
description: "Clear all cached Wayback Machine API responses. " +
|
|
135
|
+
"Use when fresh data is needed or after saving a URL.",
|
|
136
|
+
inputSchema: ClearCache,
|
|
137
|
+
}, async () => {
|
|
138
|
+
const result = await clearCache();
|
|
139
|
+
return { content: [{ type: "text", text: result.message }] };
|
|
140
|
+
});
|
|
141
|
+
server.registerTool("compare_snapshots", {
|
|
142
|
+
description: "Compare two archived snapshots of a URL. " +
|
|
143
|
+
"Fetches the raw content of both snapshots and provides a visual diff URL. " +
|
|
144
|
+
"If no timestamps specified, compares the oldest and newest available snapshots.",
|
|
145
|
+
inputSchema: CompareSnapshots,
|
|
146
|
+
}, async (args) => {
|
|
147
|
+
const result = await compareSnapshots(args, context);
|
|
148
|
+
let text = result.message;
|
|
149
|
+
if (result.snapshotA !== undefined && result.snapshotB !== undefined) {
|
|
150
|
+
text += `\n\nSnapshot A: ${result.snapshotA.date} (${result.snapshotA.timestamp})`;
|
|
151
|
+
text += `\nSnapshot B: ${result.snapshotB.date} (${result.snapshotB.timestamp})`;
|
|
152
|
+
}
|
|
153
|
+
if (result.changesUrl !== undefined) {
|
|
154
|
+
text += `\n\nVisual diff: ${result.changesUrl}`;
|
|
155
|
+
}
|
|
156
|
+
if (result.contentA !== undefined) {
|
|
157
|
+
text += `\n\n--- Snapshot A Content ---\n${result.contentA}`;
|
|
158
|
+
}
|
|
159
|
+
if (result.contentB !== undefined) {
|
|
160
|
+
text += `\n\n--- Snapshot B Content ---\n${result.contentB}`;
|
|
161
|
+
}
|
|
162
|
+
return { content: [{ type: "text", text }] };
|
|
163
|
+
});
|
|
164
|
+
async function main() {
|
|
165
|
+
const isCliMode = process.stdin.isTTY || process.argv.length > 2;
|
|
166
|
+
if (isCliMode && process.argv.length > 2) {
|
|
167
|
+
const { createCLI } = await import("./cli.js");
|
|
168
|
+
const program = createCLI();
|
|
169
|
+
await program.parseAsync(process.argv);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
const transport = new StdioServerTransport();
|
|
173
|
+
await server.connect(transport);
|
|
174
|
+
console.error("MCP Wayback Machine server running on stdio");
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
main().catch((error) => {
|
|
178
|
+
console.error("Fatal error:", error);
|
|
179
|
+
process.exit(1);
|
|
180
|
+
});
|
|
181
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAExD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAE5B,MAAM,MAAM,GAAG,IAAI,SAAS,CACxB;IACI,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE,OAAO;CACnB,EACD;IACI,YAAY,EAAE;QACV,KAAK,EAAE,EAAE;KACZ;IACD,YAAY,EACR,yHAAyH;QACzH,4EAA4E;QAC5E,qDAAqD;CAC5D,CACJ,CAAC;AAEF,MAAM,CAAC,YAAY,CACf,UAAU,EACV;IACI,WAAW,EACP,qEAAqE;QACrE,uEAAuE;QACvE,gFAAgF;IACpF,WAAW,EAAE,OAAO;CACvB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE5C,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,IAAI,qBAAqB,MAAM,CAAC,WAAW,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,IAAI,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC,CACJ,CAAC;AAEF,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;IACI,WAAW,EACP,kEAAkE;QAClE,wDAAwD;QACxD,yEAAyE;IAC7E,WAAW,EAAE,cAAc;CAC9B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,IAAI,qBAAqB,MAAM,CAAC,WAAW,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,IAAI,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,IAAI,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,qBAAqB,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;QAC/D,IAAI,IAAI,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC,CACJ,CAAC;AAEF,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB;IACI,WAAW,EACP,qEAAqE;QACrE,yEAAyE;QACzE,6EAA6E;IACjF,WAAW,EAAE,cAAc;CAC9B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,IAAI,IAAI,cAAc,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,IAAI,eAAe,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,IAAI,YAAY,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,IAAI,eAAe,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5C,IAAI,IAAI,aAAa,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACvC,IAAI,IAAI,mBAAmB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC,CACJ,CAAC;AAEF,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;IACI,WAAW,EACP,0EAA0E;QAC1E,yCAAyC;IAC7C,WAAW,EAAE,kBAAkB;CAClC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvD,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,IAAI,uBAAuB,MAAM,CAAC,YAAY,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,IAAI,oBAAoB,MAAM,CAAC,WAAW,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,IAAI,qBAAqB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,CAAC;QACD,IACI,MAAM,CAAC,cAAc,KAAK,SAAS;YACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAC/C,CAAC;YACC,IAAI,IAAI,uBAAuB,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CACtC,MAAM,CAAC,cAAc,CACxB,EAAE,CAAC;gBACA,IAAI,IAAI,OAAO,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC,CACJ,CAAC;AAEF,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;IACI,WAAW,EACP,iEAAiE;QACjE,6EAA6E;IACjF,WAAW,EAAE,eAAe;CAC/B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEpD,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,IAAI,IAAI,kBAAkB,CAAC;QAC3B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,IAAI,eAAe,UAAU,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,IAAI,mBAAmB,UAAU,CAAC,aAAa,EAAE,CAAC;YACtD,IAAI,IAAI,iBAAiB,UAAU,CAAC,WAAW,EAAE,CAAC;QACtD,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC,CACJ,CAAC;AAEF,MAAM,CAAC,YAAY,CACf,aAAa,EACb;IACI,WAAW,EACP,kDAAkD;QAClD,sDAAsD;IAC1D,WAAW,EAAE,UAAU;CAC1B,EACD,KAAK,IAAI,EAAE;IACP,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC,CACJ,CAAC;AAEF,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;IACI,WAAW,EACP,2CAA2C;QAC3C,4EAA4E;QAC5E,iFAAiF;IACrF,WAAW,EAAE,gBAAgB;CAChC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnE,IAAI,IAAI,mBAAmB,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC;QACnF,IAAI,IAAI,iBAAiB,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,IAAI,oBAAoB,MAAM,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,mCAAmC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,mCAAmC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACjE,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC,CACJ,CAAC;AAEF,KAAK,UAAU,IAAI;IACf,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjE,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACJ,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,SAAS,YA4OxB"}
|