@aia-matrix/llms-txt-validator 0.0.0-stage → 1.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 +10 -0
- package/LICENSE +21 -0
- package/README.md +152 -2
- package/THIRD_PARTY_LICENSES.md +204 -0
- package/dist/action.cjs +14153 -0
- package/dist/action.d.ts +1 -0
- package/dist/action.js +35 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +52 -0
- package/dist/discovery.d.ts +7 -0
- package/dist/discovery.js +55 -0
- package/dist/format.d.ts +6 -0
- package/dist/format.js +117 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -0
- package/dist/markdown-versions.d.ts +2 -0
- package/dist/markdown-versions.js +32 -0
- package/dist/network.d.ts +11 -0
- package/dist/network.js +107 -0
- package/dist/report.d.ts +3 -0
- package/dist/report.js +17 -0
- package/dist/scope.d.ts +2 -0
- package/dist/scope.js +20 -0
- package/dist/spec.d.ts +6 -0
- package/dist/spec.js +6 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.js +1 -0
- package/dist/validator.d.ts +2 -0
- package/dist/validator.js +236 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +2 -0
- package/package.json +54 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.0.0 — 2026-10-09
|
|
4
|
+
|
|
5
|
+
- CLI, Node.js library, and bundled GitHub Action with a Node 24 runtime, job summary, and `url`, `fail-on`, `max-links`, and `timeout` inputs.
|
|
6
|
+
- llms.txt v2 format checks for H1, optional summary, sections, and file lists, accepting any bullet style, wrapped notes, and link titles.
|
|
7
|
+
- Linked-resource checks for HTTP 200 and resource type, using HEAD with GET fallback; same-origin-only discovery checks for Markdown versions, alternate/describedby relations, and scoped llms.txt files.
|
|
8
|
+
- `pass`, `info`, `warn`, and `fail` result levels; exit codes 0, 1, and 2; stable JSON report schema 1.0.
|
|
9
|
+
- Network safeguards with timeouts, redirect and response-size limits, five concurrent requests, descriptive error codes, and proxy/custom-CA guidance.
|
|
10
|
+
- Local format-only validation with no telemetry.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Polygons Media LLC
|
|
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.
|
package/README.md
CHANGED
|
@@ -1,3 +1,153 @@
|
|
|
1
|
-
#
|
|
1
|
+
# llms.txt Validator
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A standalone CLI, Node.js library, and GitHub Action for checking the [llms.txt v2 proposal](https://llmstxt.org/) and its [August 2026 changes](https://llmstxt.org/changes.html).
|
|
4
|
+
|
|
5
|
+
<!-- Badges: enable CI, npm version, and license badges after publishing. -->
|
|
6
|
+
|
|
7
|
+
## Example output
|
|
8
|
+
|
|
9
|
+
Excerpt from `node dist/cli.js tests/fixtures/good/basic.txt`, with resource URLs and specification references omitted.
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
INFO file.size: llms.txt is 113 B (guidance: 50 KiB or less; not a spec requirement).
|
|
13
|
+
PASS format.h1: File must begin with exactly one nonempty H1.
|
|
14
|
+
PASS format.heading-levels: Only H1 and H2 headings are allowed.
|
|
15
|
+
PASS format.section.1: Each H2 section must contain nonempty link-list items.
|
|
16
|
+
PASS format.summary-order: Summary precedes the non-heading preamble.
|
|
17
|
+
INFO network.skipped: Format-only mode: network, discovery and scope checks were not performed.
|
|
18
|
+
|
|
19
|
+
Summary: 4 pass, 2 info, 0 warn, 0 fail
|
|
20
|
+
Get a full AI-readiness report: https://aiamatrix.com
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Maintained by Polygons Media LLC, San Rafael, California. Contact: contact@aiamatrix.com. Product website: https://aiamatrix.com.
|
|
24
|
+
|
|
25
|
+
This tool checks file structure and selected publication signals. It does not measure the AIA Score or guarantee AI citations, rankings, retrieval, or traffic. No telemetry is collected. Remote validation sends requests only to the submitted site and linked resources, with Markdown/HTML counterpart and applicable llms.txt probes limited to the root index’s origin.
|
|
26
|
+
|
|
27
|
+
## Install and run
|
|
28
|
+
|
|
29
|
+
Requires Node.js 22 or newer.
|
|
30
|
+
|
|
31
|
+
The npm package is published as `@aia-matrix/llms-txt-validator`; the GitHub repository and Action use `aiamatrix/llms-txt-validator`.
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
npx @aia-matrix/llms-txt-validator https://example.com
|
|
35
|
+
npx @aia-matrix/llms-txt-validator ./public/llms.txt
|
|
36
|
+
npx @aia-matrix/llms-txt-validator ./public/llms.txt --no-network --json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
From source (use Node.js 22.13+ for development; Node 24 is recommended):
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
npm ci
|
|
43
|
+
npm run build
|
|
44
|
+
node dist/cli.js https://example.com
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
| Option | Default | Meaning |
|
|
48
|
+
| ----------------------- | ------- | --------------------------------------------------------------------------------------- |
|
|
49
|
+
| `--json` | off | JSON only, without the product-report line |
|
|
50
|
+
| `--max-links <n>` | 50 | Maximum unique llms.txt link targets across all discovered indexes; nonnegative integer |
|
|
51
|
+
| `--timeout <ms>` | 10000 | Timeout for each request, including its redirects and response body |
|
|
52
|
+
| `--fail-on error\|warn` | error | Make failures, or failures and warnings, exit with code 1 |
|
|
53
|
+
| `--no-network` | off | Format-only local validation; a remote URL with this flag is a tool error |
|
|
54
|
+
| `--help` | off | Show usage |
|
|
55
|
+
| `--version` | off | Show package version |
|
|
56
|
+
|
|
57
|
+
Local files always receive format-only validation. Their linked files, discovery relations, and scopes are not checked, regardless of the flag. A `network.skipped` result identifies this limitation. Website URLs use `/llms.txt`; a path such as `https://example.com/docs/` uses `/docs/llms.txt`.
|
|
58
|
+
|
|
59
|
+
Exit codes: **0** means no findings at the configured failure threshold; **1** means validation findings reached that threshold; **2** means a tool error such as invalid arguments or an unreadable local file. A remote resource failure is a validation failure, not a tool error. Warnings may exist with exit code 0. Informational results never affect exit codes.
|
|
60
|
+
|
|
61
|
+
## What it checks
|
|
62
|
+
|
|
63
|
+
| Check | Failure or warning | Reference |
|
|
64
|
+
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------- |
|
|
65
|
+
| HTTP 200, plain/Markdown content type, non-HTML body | Failure | [Proposal](https://llmstxt.org/#proposal) |
|
|
66
|
+
| Exactly one initial H1; only H1/H2 headings | Failure | [Format](https://llmstxt.org/#format) |
|
|
67
|
+
| Optional summary before non-heading preamble | Warning | [Format](https://llmstxt.org/#format) |
|
|
68
|
+
| H2 sections contain nonempty Markdown link lists; all bullet markers, titles, balanced URL parentheses and wrapped notes are accepted | Empty sections or items without links fail; prose or item arrangement warns | [Format](https://llmstxt.org/#format) |
|
|
69
|
+
| Linked resources return 200, HEAD with GET fallback | Failure | [Proposal](https://llmstxt.org/#proposal) |
|
|
70
|
+
| Linked resource is HTML or lacks a plain/Markdown type | Warning | [Proposal](https://llmstxt.org/#proposal) |
|
|
71
|
+
| Same-page Markdown version exists, appended or replaced `.md`, directory `index.md` or `index.html.md` | Warning | [Proposal](https://llmstxt.org/#proposal) |
|
|
72
|
+
| HTML alternate and describedby relations; Markdown describedby relation | Warning | [Proposal](https://llmstxt.org/#proposal) |
|
|
73
|
+
| Scoped indexes and most-specific applicable describedby relation | Invalid existing index fails; unavailable probes warn | [Format](https://llmstxt.org/#format) |
|
|
74
|
+
| File size and local format-only mode | Oversize warns; size within the limit and skipped networking are informational | [Proposal](https://llmstxt.org/#proposal) |
|
|
75
|
+
| Link limit reached or HTML counterpart not located | Coverage warning | [Proposal](https://llmstxt.org/#proposal) |
|
|
76
|
+
| `Optional` section | Ordinary section; never omitted | [Changes](https://llmstxt.org/changes.html#v2-august-2026) |
|
|
77
|
+
|
|
78
|
+
The parser accepts a UTF-8 BOM, relative URLs, CRLF, a title-only file, and Markdown lists with any bullet marker. File-list items start with a link and may include a link title, balanced parentheses in the URL, and notes after a colon that wrap across lines. Introductory prose under an H2 and a summary after the preamble produce warnings. Links are extracted even from items that warn.
|
|
79
|
+
|
|
80
|
+
## Node.js library
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
import { validate, exitCode } from "@aia-matrix/llms-txt-validator";
|
|
84
|
+
const report = await validate("https://example.com", {
|
|
85
|
+
maxLinks: 50,
|
|
86
|
+
timeout: 10000,
|
|
87
|
+
network: true,
|
|
88
|
+
});
|
|
89
|
+
console.log(report.summary);
|
|
90
|
+
process.exitCode = exitCode(report, "error");
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`validate(target, options)` returns a report; `checkFormat(text, url)` returns format results and parsed links without HTTP. `exitCode(report, failOn)` applies the output policy. These exports share the CLI implementation.
|
|
94
|
+
|
|
95
|
+
## GitHub Action
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
- uses: aiamatrix/llms-txt-validator@v1
|
|
99
|
+
with:
|
|
100
|
+
url: https://example.com
|
|
101
|
+
fail-on: error
|
|
102
|
+
max-links: "50"
|
|
103
|
+
timeout: "10000"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The bundled JavaScript Action requires no dependency installation by the consuming workflow and writes a job summary. See [the example workflow](examples/validate-website.yml). `@v1` follows the latest 1.x release. Pinning an audited commit SHA is the most secure option. Supply trusted URLs; validation fetches URLs found in the submitted file.
|
|
107
|
+
|
|
108
|
+
## JSON schema (version 1.0)
|
|
109
|
+
|
|
110
|
+
A successful tool invocation emits exactly these top-level fields:
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"version": "1.0",
|
|
115
|
+
"url": "https://example.com/llms.txt",
|
|
116
|
+
"checkedAt": "2026-10-08T00:00:00.000Z",
|
|
117
|
+
"summary": { "pass": 1, "info": 0, "warn": 0, "fail": 0 },
|
|
118
|
+
"results": [
|
|
119
|
+
{
|
|
120
|
+
"id": "file.http",
|
|
121
|
+
"status": "pass",
|
|
122
|
+
"message": "llms.txt returned HTTP 200.",
|
|
123
|
+
"specRef": "https://llmstxt.org/#proposal",
|
|
124
|
+
"url": "https://example.com/llms.txt"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
`version` is the report-schema version, not the npm version. `checkedAt` is an ISO-8601 UTC timestamp. Summary values are nonnegative integer result counts. Results contain `id`, `status`, `message`, `specRef`, and `url`; statuses are `pass`, `info`, `warn`, or `fail`. IDs identify check categories and can recur for different resources. `format.section.N` numbers sections within one index. Results are sorted by URL, ID, and message. Do not parse human messages as an API. Local targets use `file:` URLs.
|
|
131
|
+
|
|
132
|
+
Tool errors in JSON mode use `{"version":"1.0","error":{"message":"..."}}` and exit code 2. They do not emit a validation report or the product-report line. Help and version options print their requested text.
|
|
133
|
+
|
|
134
|
+
## Network behavior and limitations
|
|
135
|
+
|
|
136
|
+
Node's built-in fetch ignores HTTP_PROXY and HTTPS_PROXY by default. On Node 24+, set `NODE_USE_ENV_PROXY=1` to use environment proxy settings. For a custom certificate authority, set `NODE_EXTRA_CA_CERTS` to the path of its PEM certificate file before starting Node.
|
|
137
|
+
|
|
138
|
+
- External origins receive only linked-resource HTTP and resource-type checks. Discovery, Markdown-version, HTML-counterpart, and scope checks apply only to resources on the root llms.txt origin.
|
|
139
|
+
- At most five link-validation tasks run concurrently. Ancillary requests within each task are sequential. Responses are cached per method and URL.
|
|
140
|
+
- User-Agent: `aiamatrix-llms-txt-validator/1.0.0 (+https://github.com/aiamatrix/llms-txt-validator)`.
|
|
141
|
+
- Redirect loops and chains beyond ten redirects fail. Response bodies are capped at 2 MiB for resource safety.
|
|
142
|
+
- There is no sitemap crawl, JavaScript execution, content truth verification, permission audit, or guaranteed detection of every scoped file. Scoped candidates are probed only along checked resource paths. HTTP 404/410 means an optional scope is absent; other unsuccessful probes report incomplete coverage.
|
|
143
|
+
- The link budget applies to index-linked resources; counterpart and scope probes can add requests. There is no total-site coverage claim. The tool does not read robots.txt, so run it only against resources you are permitted to request.
|
|
144
|
+
- Matching HTML counterparts is heuristic when the file URL does not uniquely identify its original page. Text/plain is accepted, but the tool does not prove that a text resource is semantically useful Markdown.
|
|
145
|
+
- Network access can reach local/private addresses if a supplied or linked URL points there. Use trusted inputs and an isolated runner with appropriate outbound network restrictions for untrusted sites.
|
|
146
|
+
|
|
147
|
+
## Contributing
|
|
148
|
+
|
|
149
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md), [SECURITY.md](SECURITY.md), and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). Release instructions are in CONTRIBUTING.md.
|
|
150
|
+
|
|
151
|
+
## License
|
|
152
|
+
|
|
153
|
+
MIT © 2026 Polygons Media LLC.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Bundled third-party licenses
|
|
2
|
+
|
|
3
|
+
The GitHub Action bundle includes these dependencies. The project itself is MIT-licensed.
|
|
4
|
+
|
|
5
|
+
## entities
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Copyright (c) Felix Böhm
|
|
9
|
+
All rights reserved.
|
|
10
|
+
|
|
11
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
12
|
+
|
|
13
|
+
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
14
|
+
|
|
15
|
+
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
16
|
+
|
|
17
|
+
THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS,
|
|
18
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## linkify-it
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
Copyright (c) 2015 Vitaly Puzrin.
|
|
26
|
+
|
|
27
|
+
Permission is hereby granted, free of charge, to any person
|
|
28
|
+
obtaining a copy of this software and associated documentation
|
|
29
|
+
files (the "Software"), to deal in the Software without
|
|
30
|
+
restriction, including without limitation the rights to use,
|
|
31
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32
|
+
copies of the Software, and to permit persons to whom the
|
|
33
|
+
Software is furnished to do so, subject to the following
|
|
34
|
+
conditions:
|
|
35
|
+
|
|
36
|
+
The above copyright notice and this permission notice shall be
|
|
37
|
+
included in all copies or substantial portions of the Software.
|
|
38
|
+
|
|
39
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
40
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
41
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
42
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
43
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
44
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
45
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
46
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## markdown-it
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
|
54
|
+
|
|
55
|
+
Permission is hereby granted, free of charge, to any person
|
|
56
|
+
obtaining a copy of this software and associated documentation
|
|
57
|
+
files (the "Software"), to deal in the Software without
|
|
58
|
+
restriction, including without limitation the rights to use,
|
|
59
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
60
|
+
copies of the Software, and to permit persons to whom the
|
|
61
|
+
Software is furnished to do so, subject to the following
|
|
62
|
+
conditions:
|
|
63
|
+
|
|
64
|
+
The above copyright notice and this permission notice shall be
|
|
65
|
+
included in all copies or substantial portions of the Software.
|
|
66
|
+
|
|
67
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
68
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
69
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
70
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
71
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
72
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
73
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
74
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## mdurl
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
Copyright (c) 2015 Vitaly Puzrin, Alex Kocharin.
|
|
82
|
+
|
|
83
|
+
Permission is hereby granted, free of charge, to any person
|
|
84
|
+
obtaining a copy of this software and associated documentation
|
|
85
|
+
files (the "Software"), to deal in the Software without
|
|
86
|
+
restriction, including without limitation the rights to use,
|
|
87
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
88
|
+
copies of the Software, and to permit persons to whom the
|
|
89
|
+
Software is furnished to do so, subject to the following
|
|
90
|
+
conditions:
|
|
91
|
+
|
|
92
|
+
The above copyright notice and this permission notice shall be
|
|
93
|
+
included in all copies or substantial portions of the Software.
|
|
94
|
+
|
|
95
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
96
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
97
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
98
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
99
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
100
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
101
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
102
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
103
|
+
|
|
104
|
+
--------------------------------------------------------------------------------
|
|
105
|
+
|
|
106
|
+
.parse() is based on Joyent's node.js `url` code:
|
|
107
|
+
|
|
108
|
+
Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
|
109
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
110
|
+
of this software and associated documentation files (the "Software"), to
|
|
111
|
+
deal in the Software without restriction, including without limitation the
|
|
112
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
113
|
+
sell copies of the Software, and to permit persons to whom the Software is
|
|
114
|
+
furnished to do so, subject to the following conditions:
|
|
115
|
+
|
|
116
|
+
The above copyright notice and this permission notice shall be included in
|
|
117
|
+
all copies or substantial portions of the Software.
|
|
118
|
+
|
|
119
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
120
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
121
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
122
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
123
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
124
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
125
|
+
IN THE SOFTWARE.
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## parse5
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
Copyright (c) 2013-2019 Ivan Nikulin (ifaaan@gmail.com, https://github.com/inikulin)
|
|
133
|
+
|
|
134
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
135
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
136
|
+
in the Software without restriction, including without limitation the rights
|
|
137
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
138
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
139
|
+
furnished to do so, subject to the following conditions:
|
|
140
|
+
|
|
141
|
+
The above copyright notice and this permission notice shall be included in
|
|
142
|
+
all copies or substantial portions of the Software.
|
|
143
|
+
|
|
144
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
145
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
146
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
147
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
148
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
149
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
150
|
+
THE SOFTWARE.
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## punycode.js
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
Copyright Mathias Bynens <https://mathiasbynens.be/>
|
|
158
|
+
|
|
159
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
160
|
+
a copy of this software and associated documentation files (the
|
|
161
|
+
"Software"), to deal in the Software without restriction, including
|
|
162
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
163
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
164
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
165
|
+
the following conditions:
|
|
166
|
+
|
|
167
|
+
The above copyright notice and this permission notice shall be
|
|
168
|
+
included in all copies or substantial portions of the Software.
|
|
169
|
+
|
|
170
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
171
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
172
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
173
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
174
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
175
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
176
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## uc.micro
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
Copyright Mathias Bynens <https://mathiasbynens.be/>
|
|
184
|
+
|
|
185
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
186
|
+
a copy of this software and associated documentation files (the
|
|
187
|
+
"Software"), to deal in the Software without restriction, including
|
|
188
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
189
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
190
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
191
|
+
the following conditions:
|
|
192
|
+
|
|
193
|
+
The above copyright notice and this permission notice shall be
|
|
194
|
+
included in all copies or substantial portions of the Software.
|
|
195
|
+
|
|
196
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
197
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
198
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
199
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
200
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
201
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
202
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
203
|
+
|
|
204
|
+
```
|