Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/node20-and-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@taskade/uri-parser": minor
---

Relax `engines.node` from `>=22` to `>=20` (the lowest line the Vitest 4 suite can run). CI now tests 20, 22, and 24. Node 18 is EOL and is not claimed. Docs-only: badges and a “use WHATWG URL unless you need a lossless AST / host-path / no-scheme parse” table. Still 0.x — URI Template is not in this release. No parser or API changes.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:

strategy:
matrix:
node-version: [22.x, 24.x]
node-version: [20.x, 22.x, 24.x]

steps:
- uses: actions/checkout@v4
Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,7 @@ This parser follows the temporal-parser philosophy:
## Questions?

Feel free to open an issue for discussion!

## Development notes

This project was developed with LLM assistance (GPT 5.2 / Claude Sonnet 4.5), under human direction for design decisions, architecture, and verification. All code is tested and reviewed on a best-effort basis.
27 changes: 23 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

A lexer and parser for URIs with support for various URL forms, built with compiler design principles.

By [Stan Chang](https://lxcid.com/) ([@lxcid](https://github.com/lxcid)).

[![npm](https://img.shields.io/npm/v/@taskade/uri-parser?style=flat-square&color=FF2D60)](https://www.npmjs.com/package/@taskade/uri-parser)
[![npm downloads](https://img.shields.io/npm/dm/@taskade/uri-parser?style=flat-square)](https://www.npmjs.com/package/@taskade/uri-parser)
[![CI](https://img.shields.io/github/actions/workflow/status/taskade/uri-parser/ci.yml?branch=main&style=flat-square)](https://github.com/taskade/uri-parser/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/github/license/taskade/uri-parser?style=flat-square)](./LICENSE.md)

Sibling: [`@taskade/temporal-parser`](https://github.com/taskade/temporal-parser) (same compiler approach for ISO 8601 / RFC 3339 / IXDTF).

## When to use this

Use the platform `URL` / WHATWG parser unless you need a lossless AST, host-path (no scheme), network-path (`//host/...`), or a custom grammar on the same token stream.

| Need | Use |
| --- | --- |
| Everyday resolve / normalize / `href` | [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL) (WHATWG) |
| Lossless AST, host-path, no-scheme, exposed lexer | **this package** |
| Date/time strings | [`@taskade/temporal-parser`](https://github.com/taskade/temporal-parser) |

## Features

- **Flexible parsing**: Handles absolute URLs, network-path URLs, host-path URLs, and relative paths
Expand Down Expand Up @@ -326,13 +345,13 @@ If you need different semantics, you can:
- Extend or replace parts of the grammar
- Apply your own normalization rules

## Contributing
## Related

See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and guidelines.
- [`@taskade/temporal-parser`](https://github.com/taskade/temporal-parser) — same compiler approach for ISO 8601, RFC 3339, and IXDTF

## Development
## Contributing

This project was developed with LLM assistance (GPT 5.2/Claude Sonnet 4.5), under human direction for design decisions, architecture, and verification. All code is tested and reviewed on a best-effort basis.
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and guidelines.

## License

Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
"CHANGELOG.md"
],
"engines": {
"node": ">=22"
"node": ">=20"
},
"scripts": {
"build": "npm run clean && node scripts/build.mjs && npm run build:types",
Expand Down
Loading