link-canonical-0.1.0.0: link-canonical.cabal
cabal-version: 3.0
name: link-canonical
version: 0.1.0.0
synopsis: URL canonicalization library for semantic link identity
description:
A Haskell library that converts arbitrary URLs into canonical,
semantically stable identifiers. Handles redirect resolution,
tracking parameter removal, and domain-specific normalization
for platforms like YouTube, Amazon, Twitter/X, and more.
license: MIT
license-file: LICENSE
author: Nadeem Bitar
maintainer: Nadeem Bitar
category: Web, Network
build-type: Simple
extra-doc-files:
CHANGELOG.md
README.md
docs/architecture/v1.md
source-repository head
type: git
location: https://github.com/shinzui/link-canonical.git
common common
ghc-options:
-Wall
-Wcompat
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wmissing-deriving-strategies
-Wpartial-fields
-Wredundant-constraints
-Wunused-packages
default-language: GHC2024
default-extensions:
DeriveAnyClass
DuplicateRecordFields
NoFieldSelectors
OverloadedLabels
OverloadedStrings
StrictData
library
import: common
hs-source-dirs: src
exposed-modules:
Link.Canonical
Link.Canonical.Config
Link.Canonical.Error
Link.Canonical.Http
Link.Canonical.Redirect
Link.Canonical.Rules
Link.Canonical.Rules.Types
Link.Canonical.Types
other-modules:
Link.Canonical.Normalize
Link.Canonical.Prelude
Link.Canonical.Rules.Amazon
Link.Canonical.Rules.GitHub
Link.Canonical.Rules.Instagram
Link.Canonical.Rules.Reddit
Link.Canonical.Rules.Twitter
Link.Canonical.Rules.YouTube
Link.Canonical.Tracking
build-depends:
base >=4.18 && <5,
bytestring >=0.11 && <0.13,
case-insensitive >=1.2 && <1.3,
containers >=0.6 && <0.8,
exceptions >=0.10 && <0.11,
generic-lens >=2.2 && <2.3,
http-client >=0.7 && <0.8,
http-client-tls >=0.3 && <0.4,
http-types >=0.12 && <0.13,
lens >=5.2 && <5.4,
modern-uri >=0.3 && <0.4,
text >=2.0 && <2.2,
time >=1.12 && <1.15,
test-suite link-canonical-test
import: common
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
Link.Canonical.AmazonSpec
Link.Canonical.EdgeCaseSpec
Link.Canonical.GitHubSpec
Link.Canonical.InstagramSpec
Link.Canonical.NormalizeSpec
Link.Canonical.RedditSpec
Link.Canonical.RedirectSpec
Link.Canonical.TrackingSpec
Link.Canonical.TwitterSpec
Link.Canonical.YouTubeSpec
build-depends:
base,
containers,
http-types,
link-canonical,
modern-uri,
mtl,
tasty >=1.5 && <1.6,
tasty-hunit >=0.10 && <0.11,
text,