{"id":20850592,"url":"https://github.com/multiformats/js-mafmt","last_synced_at":"2025-04-08T02:43:14.784Z","repository":{"id":3539766,"uuid":"49963417","full_name":"multiformats/js-mafmt","owner":"multiformats","description":"javascript multiaddr validation","archived":false,"fork":false,"pushed_at":"2025-03-28T18:03:31.000Z","size":1594,"stargazers_count":16,"open_issues_count":3,"forks_count":19,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-31T04:36:02.558Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/multiformats.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-19T15:50:08.000Z","updated_at":"2025-03-29T18:16:39.000Z","dependencies_parsed_at":"2023-02-17T21:31:19.520Z","dependency_job_id":"69df1eff-fa31-4684-88d4-1f8f0d231020","html_url":"https://github.com/multiformats/js-mafmt","commit_stats":{"total_commits":201,"total_committers":24,"mean_commits":8.375,"dds":0.6666666666666667,"last_synced_commit":"8707622b7340b01157fcea544b7311f7a792b43a"},"previous_names":["whyrusleeping/js-mafmt"],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fjs-mafmt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fjs-mafmt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fjs-mafmt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fjs-mafmt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/multiformats","download_url":"https://codeload.github.com/multiformats/js-mafmt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247767232,"owners_count":20992538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T03:10:28.871Z","updated_at":"2025-04-08T02:43:14.767Z","avatar_url":"https://github.com/multiformats.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @multiformats/mafmt \u003c!-- omit in toc --\u003e\n\n[![multiformats.io](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://multiformats.io)\n[![codecov](https://img.shields.io/codecov/c/github/multiformats/js-mafmt.svg?style=flat-square)](https://codecov.io/gh/multiformats/js-mafmt)\n[![CI](https://img.shields.io/github/actions/workflow/status/multiformats/js-mafmt/js-test-and-release.yml?branch=master\\\u0026style=flat-square)](https://github.com/multiformats/js-mafmt/actions/workflows/js-test-and-release.yml?query=branch%3Amaster)\n\n\u003e A multiaddr validator\n\n## Table of contents \u003c!-- omit in toc --\u003e\n\n- [Install](#install)\n  - [Browser `\u003cscript\u003e` tag](#browser-script-tag)\n- [Usage](#usage)\n- [API](#api)\n  - - [`mafmt.\u003cFORMAT\u003e.matches(multiaddr)`](#mafmtformatmatchesmultiaddr)\n- [API Docs](#api-docs)\n- [License](#license)\n- [Contribution](#contribution)\n\n## Install\n\n```console\n$ npm i @multiformats/mafmt\n```\n\n### Browser `\u003cscript\u003e` tag\n\nLoading this module through a script tag will make it's exports available as `MultiformatsMafmt` in the global namespace.\n\n```html\n\u003cscript src=\"https://unpkg.com/@multiformats/mafmt/dist/index.min.js\"\u003e\u003c/script\u003e\n```\n\n## Usage\n\n```js\nimport * as mafmt from '@multiformats/mafmt'\n\nmafmt.DNS.matches('/dns4/ipfs.io') // true\n```\n\n## API\n\n#### `mafmt.\u003cFORMAT\u003e.matches(multiaddr)`\n\nWhere `\u003cFORMAT\u003e` may be:\n\n| `\u003cFORMAT\u003e`         | Description                                                                                                                                                                                                               | Example(s)                                                                                                                                       |\n| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `DNS`              | a \"dns4\" or \"dns6\" format multiaddr                                                                                                                                                                                       | `/dnsaddr/ipfs.io`                                                                                                                               |\n| `DNS4`             | a \"dns4\" format multiaddr                                                                                                                                                                                                 | `/dns4/ipfs.io`                                                                                                                                  |\n| `DNS6`             | a \"dns6\" format multiaddr                                                                                                                                                                                                 | `/dns6/protocol.ai/tcp/80`                                                                                                                       |\n| `IP`               | an \"ip4\" or \"ip6\" format multiaddr                                                                                                                                                                                        | `/ip4/127.0.0.1` \u003cbr\u003e `/ip6/fc00::`                                                                                                              |\n| `TCP`              | a \"tcp\" over `IP` format multiaddr                                                                                                                                                                                        | `/ip4/0.0.7.6/tcp/1234`                                                                                                                          |\n| `UDP`              | a \"udp\" over `IP` format multiaddr                                                                                                                                                                                        | `/ip4/0.0.7.6/udp/1234`                                                                                                                          |\n| `QUIC`             | a \"quic\" over `UDP` format multiaddr                                                                                                                                                                                      | `/ip4/1.2.3.4/udp/1234/quic`                                                                                                                     |\n| `UTP`              | a \"utp\" over `UDP` format multiaddr                                                                                                                                                                                       | `/ip4/1.2.3.4/udp/3456/utp`                                                                                                                      |\n| `Websockets`       | a \"ws\" over `TCP` or \"ws\" over `DNS` format multiaddr                                                                                                                                                                     | `/ip4/1.2.3.4/tcp/3456/ws` \u003cbr\u003e `/dnsaddr/ipfs.io/ws`                                                                                            |\n| `WebSocketsSecure` | a \"wss\" over `TCP` or \"wss\" over `DNS` format multiaddr                                                                                                                                                                   | `/ip6/::/tcp/0/wss` \u003cbr\u003e `/dnsaddr/ipfs.io/wss`                                                                                                  |\n| `HTTP`             | a \"http\" over `TCP` or `DNS` or \"http\" over `DNS` format multiaddr                                                                                                                                                        | `/ip4/127.0.0.1/tcp/90/http` \u003cbr\u003e `/dnsaddr/ipfs.io/http`                                                                                        |\n| `HTTPS`            | a \"https\" over `TCP` or `DNS` or \"https\" over `DNS` format multiaddr                                                                                                                                                      | `/ip4/127.0.0.1/tcp/90/https` \u003cbr\u003e `/dnsaddr/ipfs.io/https`                                                                                      |\n| `WebRTCStar`       | a \"p2p\" over \"p2p-webrtc-star\" over `Websockets` or \"p2p\" over \"p2p-webrtc-star\" over `WebSocketsSecure` format multiaddr                                                                                                 | `/dnsaddr/ipfs.io/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4`                                                        |\n| `WebSocketStar`    | a \"p2p\" over \"p2p-websocket-star\" over `Websockets` or \"p2p\" over \"p2p-websocket-star\" over `WebSocketsSecure` or \"p2p-websocket-star\" over `Websockets` or \"p2p-websocket-star\" over `WebSocketsSecure` format multiaddr | `/ip4/1.2.3.4/tcp/3456/ws/p2p-websocket-star` \u003cbr\u003e `/dnsaddr/localhost/ws/p2p-websocket-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4` |\n| `WebRTCDirect`     | a \"p2p-webrtc-direct\" over `HTTP` or \"p2p-webrtc-direct\" over `HTTPS` format multiaddr                                                                                                                                    | `/ip4/1.2.3.4/tcp/3456/http/p2p-webrtc-direct`                                                                                                   |\n| `Reliable`         | a `WebSockets` or `WebSocketsSecure` or `HTTP` or `HTTPS` or `WebRTCStar` or `WebRTCDirect` or `TCP` or `UTP` or `QUIC` format multiaddr                                                                                  | `/dnsaddr/ipfs.io/wss`                                                                                                                           |\n| `Circuit`          |                                                                                                                                                                                                                           | `/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4/p2p-circuit/p2p/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj`                             |\n| `P2P`              | \"p2p\", aka \"ipfs\", over `Reliable` or `WebRTCStar` or \"p2p\" format multiaddr                                                                                                                                              | `/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4` \u003cbr\u003e `/ip4/127.0.0.1/tcp/20008/ws/p2p/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj`      |\n\nWhere `multiaddr` may be:\n\n- a [Multiaddr](https://www.npmjs.com/package/@multiformats/multiaddr)\n- a String\n- a [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\n\nReturns `true`/`false`\n\n## API Docs\n\n- \u003chttps://multiformats.github.io/js-mafmt\u003e\n\n## License\n\nLicensed under either of\n\n- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT ([LICENSE-MIT](LICENSE-MIT) / \u003chttp://opensource.org/licenses/MIT\u003e)\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiformats%2Fjs-mafmt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmultiformats%2Fjs-mafmt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiformats%2Fjs-mafmt/lists"}