chore: add high level classes

Signed-off-by: The one with the braid <the-one@with-the-braid.cf>
This commit is contained in:
The one with the braid 2023-08-27 17:47:11 +02:00
parent 165226bee1
commit 78f88305ec
13 changed files with 678 additions and 316 deletions

View file

@ -6,8 +6,35 @@ A Dart native pkpass parsing library
- no platform specific dependencies - pure Dart
- parse any .pkpass file as blob
- checksum verification
- extract metadata
- high level lookup for assets by locale and scale, with proper fallbacks
- high level barcode API
- No dependency on `dart:io` or `dart:ui` runs everywhere, from CLI to Flutter
## Not supported (yet)
Some parts of the PkPass specification are either not yet implemented, or not planned, such as:
- `signature`: The detached PKCS #7 signature using Apple certificates of the manifest. Note: Checksums _are_ checked. -
Not planned, feel free to contribute.
- `nfc`: Card payment information for Apple Pay. - Not planned, feel free to contribute.
- `webService`: Information used to update passes using the web service. - Planned, feel free to contribute.
## Dependencies and compatibility
Any package should keep its dependencies as minimal as possible. Sometimes, there are specifications making this
difficult. The PkPass spec unfortunately is a very complex one, requiring support of many standards and formats.
The following dependencies are used to correctly parse the PkPass file into a relevant Dart representation.
- [`pub:archive`](https://pub.dev/packages/archive): The PkPass file itself is a ZIP archive, used to parse the raw
bytes.
- [`pub:barcode`](https://pub.dev/packages/barcode): Used to provide high-level access to barcode generation with the
proper encoding supported.
- [`pub:crypto`](https://pub.dev/packages/crypto): Used for SHA1 signature verification as defined in the PkPass spec.
- [`pub:intl`](https://pub.dev/packages/intl): Used for localization lookup of localizable resources like Strings or
assets.
## Getting started