ExPass is an Elixir library for generating and manipulating Apple Wallet passes.
The package can be installed by adding ex_pass
to your list of dependencies in mix.exs
:
def deps do
[
{:ex_pass, "~> 0.1.0"}
]
end
Object | Field | Issue No. | Status |
---|---|---|---|
Pass.PassFieldContent |
Pass.PassFieldContent.attributedValue |
#145 | ✅ |
Pass.PassFieldContent.changeMessage |
#146 | ✅ | |
Pass.PassFieldContent.currencyCode |
#147 | ✅ | |
Pass.PassFieldContent.dataDetectorTypes |
#148 | ✅ | |
Pass.PassFieldContent.dateStyle |
#149 | ✅ | |
Pass.PassFieldContent.ignoresTimeZone |
#150 | ✅ | |
Pass.PassFieldContent.isRelative |
#151 | ✅ | |
Pass.PassFieldContent.key |
#152 | ✅ | |
Pass.PassFieldContent.label |
#159 | ✅ | |
Pass.PassFieldContent.numberStyle |
#154 | ✅ | |
Pass.PassFieldContent.textAlignment |
#155 | ✅ | |
Pass.PassFieldContent.timeStyle |
#156 | ✅ | |
Pass.PassFieldContent.value |
#157 | ✅ | |
Pass.Barcodes |
Pass.barcodes.altText |
#56 | ✅ |
Pass.barcodes.format |
#57 | ✅ | |
Pass.barcodes.message |
#58 | ✅ | |
Pass.barcodes.messageEncoding |
#59 | ✅ | |
Pass.Beacons |
Pass.beacons.major |
#60 | ✅ |
Pass.beacons.minor |
#61 | ✅ | |
Pass.beacons.proximityUUID |
#62 | ✅ | |
Pass.beacons.relevantText |
#63 | ✅ | |
Pass.Locations |
Pass.locations.altitude |
#89 | ✅ |
Pass.locations.latitude |
#90 | ✅ | |
Pass.locations.longitude |
#91 | ✅ | |
Pass.locations.relevantText |
#92 | ✅ | |
Pass.NFC |
Pass.nfc.encryptionPublicKey |
#93 | todo |
Pass.nfc.message |
#94 | todo |
|
Pass.nfc.requiresAuthentication |
#95 | todo |
|
Pass.PassFields.AuxiliaryFields |
Inherits From Pass.PassFieldContent |
todo |
|
Pass.PassFields.AuxiliaryFields.row |
#64 | todo |
|
Pass.PassFields.SecondaryFields |
Inherits From Pass.PassFieldContent |
#69 | todo |
Pass.PassFields.PrimaryFields |
Inherits From Pass.PassFieldContent |
#68 | todo |
Pass.PassFields.HeaderFields |
Inherits From Pass.PassFieldContent |
#67 | todo |
Pass.PassFields.BackFields |
Inherits From Pass.PassFieldContent |
#66 | todo |
Pass.PassFields |
Pass.PassFields.auxiliaryFields |
#139 | todo |
Pass.PassFields.backFields |
#140 | todo |
|
Pass.PassFields.headerFields |
#141 | todo |
|
Pass.PassFields.primaryFields |
#142 | todo |
|
Pass.PassFields.secondaryFields |
#143 | todo |
|
Pass.BoardingPass |
Inherits From Pass.PassFields |
#75 | todo |
Pass.boardingPass.transitType |
#144 | todo |
|
Pass.Coupon |
Inherits From Pass.PassFields |
#77 | todo |
Pass.coupon.couponCode |
#78 | todo |
|
Pass.coupon.discountAmount |
#79 | todo |
|
Pass.coupon.expirationDate |
#80 | todo |
|
Pass.EventTicket |
Inherits From Pass.PassFields |
#81 | todo |
Pass.eventTicket.preferred_style_schemes |
#84 | todo |
|
Pass.Generic |
Inherits From Pass.PassFields |
#88 | todo |
Pass.StoreCard |
Inherits From Pass.PassFields |
#96 | todo |
Pass.SemanticTags.CurrencyAmount |
Pass.semanticTags.currencyAmount.amount |
#115 | todo |
Pass.semanticTags.currencyAmount.currencyCode |
#98 | todo |
|
Pass.SemanticTags.Location |
Pass.semanticTags.location.latitude |
#99 | todo |
Pass.semanticTags.location.longitude |
#100 | todo |
|
Pass.SemanticTags.PersonNameComponents |
Pass.semanticTags.personNameComponents.familyName |
#101 | todo |
Pass.semanticTags.personNameComponents.givenName |
#102 | todo |
|
Pass.semanticTags.personNameComponents.middleName |
#103 | todo |
|
Pass.semanticTags.personNameComponents.namePrefix |
#104 | todo |
|
Pass.semanticTags.personNameComponents.nameSuffix |
#105 | todo |
|
Pass.semanticTags.personNameComponents.nickname |
#106 | todo |
|
Pass.semanticTags.personNameComponents.phoneticRepresentation |
#107 | todo |
|
Pass.SemanticTags.Seat |
Pass.semanticTags.seat.seatDescription |
#109 | todo |
Pass.semanticTags.seat.seatIdentifier |
#110 | todo |
|
Pass.semanticTags.seat.seatNumber |
#111 | todo |
|
Pass.semanticTags.seat.seatRow |
#112 | todo |
|
Pass.semanticTags.seat.seatSection |
#113 | todo |
|
Pass.semanticTags.seat.seatType |
#114 | ✅ | |
Pass.Locations |
Pass.locations.altitude |
todo |
|
Pass.locations.latitude |
todo |
||
Pass.locations.longitude |
#90 | todo |
|
Pass.locations.relevantText |
#92 | todo |
|
Pass.NFC |
Pass.nfc.encryptionPublicKey |
#93 | todo |
Pass.nfc.message |
#94 | todo |
|
Pass.nfc.requiresAuthentication |
#95 | todo |
|
Pass.PassFields.AuxiliaryFields |
Inherits From Pass.PassFieldContent |
todo |
|
Pass.PassFields.AuxiliaryFields.row |
todo |
||
Pass.PassFields.SecondaryFields |
Inherits From Pass.PassFieldContent |
#143 | todo |
Pass.PassFields.SecondaryFields.row |
#143 | todo |
|
Pass.PassFields.HeaderFields |
Inherits From Pass.PassFieldContent |
#141 | todo |
Pass.PassFields.BackFields |
Inherits From Pass.PassFieldContent |
#140 | todo |
Pass.PassFields |
Pass.PassFields.auxiliaryFields |
#139 | todo |
Pass.PassFields.backFields |
#140 | todo |
|
Pass.PassFields.headerFields |
#141 | todo |
|
Pass.PassFields.primaryFields |
#142 | todo |
|
Pass.PassFields.secondaryFields |
#143 | todo |
|
Pass.BoardingPass |
Inherits From Pass.PassFields |
#144 | todo |
Pass.boardingPass.transitType |
#144 | todo |
|
Pass.Coupon |
Inherits From Pass.PassFields |
todo |
|
Pass.EventTicket |
Inherits From Pass.PassFields |
todo |
|
Pass.Generic |
Inherits From Pass.PassFields |
todo |
|
Pass.StoreCard |
Inherits From Pass.PassFields |
todo |
|
Pass.SemanticTags.CurrencyAmount |
Pass.semanticTags.currencyAmount.amount |
todo |
|
Pass.semanticTags.currencyAmount.currencyCode |
#98 | todo |
|
Pass.SemanticTags.Location |
Pass.semanticTags.location.latitude |
#99 | todo |
Pass.semanticTags.location.longitude |
#100 | todo |
|
Pass.SemanticTags.PersonNameComponents |
Pass.semanticTags.personNameComponents.familyName |
#101 | todo |
Pass.semanticTags.personNameComponents.givenName |
#102 | todo |
|
Pass.semanticTags.personNameComponents.middleName |
#103 | todo |
|
Pass.semanticTags.personNameComponents.namePrefix |
#104 | todo |
|
Pass.semanticTags.personNameComponents.nameSuffix |
#105 | todo |
|
Pass.semanticTags.personNameComponents.nickname |
#106 | todo |
|
Pass.semanticTags.personNameComponents.phoneticRepresentation |
#107 | todo |
|
Pass.SemanticTags.Seat |
Pass.semanticTags.seat.seatDescription |
#109 | todo |
Pass.semanticTags.seat.seatIdentifier |
#110 | todo |
|
Pass.semanticTags.seat.seatNumber |
#111 | todo |
|
Pass.semanticTags.seat.seatRow |
#112 | todo |
|
Pass.semanticTags.seat.seatSection |
#113 | todo |
|
Pass.semanticTags.seat.seatType |
todo |
||
Pass.SemanticTags.WifiNetwork |
Pass.semanticTags.wifiNetwork.password |
todo |
|
Pass.semanticTags.wifiNetwork.ssid |
todo |
||
Pass.SemanticTags |
Pass.semanticTags.airlineCode |
#21 | todo |
Pass.semanticTags.artistIDs |
#22 | todo |
|
Pass.semanticTags.awayTeamAbbreviation |
#24 | todo |
|
Pass.semanticTags.awayTeamLocation |
#25 | todo |
|
Pass.semanticTags.awayTeamName |
#26 | todo |
|
Pass.semanticTags.balance |
#27 | todo |
|
Pass.semanticTags.boardingGroup |
#28 | todo |
|
Pass.semanticTags.boardingSequenceNumber |
#29 | todo |
|
Pass.semanticTags.carNumber |
#30 | todo |
|
Pass.semanticTags.confirmationNumber |
#31 | todo |
|
Pass.semanticTags.currentArrivalDate |
#32 | todo |
|
Pass.semanticTags.currentBoardingDate |
#33 | todo |
|
Pass.semanticTags.currentDepartureDate |
#34 | todo |
|
Pass.semanticTags.departureAirportCode |
#36 | todo |
|
Pass.semanticTags.departureAirportName |
#37 | todo |
|
Pass.semanticTags.departureGate |
#38 | todo |
|
Pass.semanticTags.departureLocation |
#39 | todo |
|
Pass.semanticTags.departureLocationDescription |
#40 | todo |
|
Pass.semanticTags.departurePlatform |
#41 | todo |
|
Pass.semanticTags.departureStationName |
#42 | todo |
|
Pass.semanticTags.departureTerminal |
#43 | todo |
|
Pass.semanticTags.destinationAirportCode |
#44 | todo |
|
Pass.semanticTags.destinationAirportName |
#45 | todo |
|
Pass.semanticTags.destinationGate |
todo |
||
Pass.semanticTags.destinationLocation |
todo |
||
Pass.semanticTags.destinationLocationDescription |
todo |
||
Pass.semanticTags.destinationPlatform |
todo |
||
Pass.semanticTags.destinationStationName |
todo |
||
Pass.semanticTags.destinationTerminal |
todo |
||
Pass.semanticTags.duration |
todo |
||
Pass.semanticTags.eventEndDate |
todo |
||
Pass.semanticTags.eventName |
todo |
||
Pass.semanticTags.eventStartDate |
todo |
||
Pass.semanticTags.eventType |
todo |
||
Pass.semanticTags.flightCode |
todo |
||
Pass.semanticTags.flightNumber |
todo |
||
Pass.semanticTags.genre |
todo |
||
Pass.semanticTags.homeTeamAbbreviation |
todo |
||
Pass.semanticTags.homeTeamLocation |
todo |
||
Pass.semanticTags.homeTeamName |
todo |
||
Pass.semanticTags.leagueAbbreviation |
todo |
||
Pass.semanticTags.leagueName |
todo |
||
Pass.semanticTags.membershipProgramName |
todo |
||
Pass.semanticTags.membershipProgramNumber |
todo |
||
Pass.semanticTags.originalArrivalDate |
todo |
||
Pass.semanticTags.originalBoardingDate |
todo |
||
Pass.semanticTags.originalDepartureDate |
todo |
||
Pass.semanticTags.passengerName |
todo |
||
Pass.semanticTags.performerNames |
todo |
||
Pass.semanticTags.priorityStatus |
todo |
||
Pass.semanticTags.seats |
todo |
||
Pass.semanticTags.securityScreening |
todo |
||
Pass.semanticTags.silenceRequested |
todo |
||
Pass.semanticTags.sportName |
todo |
||
Pass.semanticTags.totalPrice |
todo |
||
Pass.semanticTags.transitProvider |
todo |
||
Pass.semanticTags.transitStatus |
#46 | todo |
|
Pass.semanticTags.transitStatusReason |
#47 | todo |
|
Pass.semanticTags.vehicleName |
#48 | todo |
|
Pass.semanticTags.vehicleNumber |
#49 | todo |
|
Pass.semanticTags.vehicleType |
#50 | todo |
|
Pass.semanticTags.venueEntrance |
#51 | todo |
|
Pass.semanticTags.venueLocation |
#52 | todo |
|
Pass.semanticTags.venueName |
#53 | todo |
|
Pass.semanticTags.venuePhoneNumber |
#54 | todo |
|
Pass.semanticTags.venueRoom |
#55 | todo |
|
Pass.semanticTags.wifiAccess |
#64 | todo |
|
Handle pk pass signing | todo |
||
Handle pkpass asset | todo |
We welcome contributions to this project! To ensure a smooth process, please follow these guidelines:
-
Fork the repository: Click the "Fork" button at the top right of this page to create a copy of the repository in your GitHub account.
-
Clone your fork: Use
git clone
to clone your forked repository to your local machine.git clone https://github.com/your-username/ex_pass.git
-
Create a branch: Create a new branch for your work.
git checkout -b your-branch-name
-
Code Style: Ensure your code adheres to the project's coding standards.
-
Commit Messages: We use conventional commits. Write clear and concise commit messages following the format:
type(scope): subject
Examples:
feat(parser): add ability to parse new format fix(api): handle null response
-
Testing: Ensure ample testing on your changes to avoid breaking existing functionality.
# Run tests
-
Versioning: We use semantic versioning. Make sure to update the version number appropriately if your changes introduce new features, bug fixes, or breaking changes.
-
Push your branch: Push your changes to your forked repository.
git push origin your-branch-name
-
Open a Pull Request: Go to the original repository and open a pull request. Provide a clear description of your changes and any related issues.
When opening a pull request, please use the provided pull request template to ensure all necessary information is included. This helps maintain consistency and provides reviewers with the context they need to understand your changes.
The pull request template includes sections for:
- Title: Provide a succinct and descriptive title for the pull request.
- Type of Change: Indicate the type of change (e.g., new feature, bug fix, documentation update).
- Description: Provide a detailed explanation of the changes you have made, including the reasons behind these changes and any relevant context.
- Testing: Detail the testing you have performed to ensure that these changes function as intended.
- Impact: Discuss the impact of your changes on the project, including effects on performance, new dependencies, or changes in behavior.
- Additional Information: Include any additional information that reviewers should be aware of.
- Checklist: Ensure your code adheres to the project's coding and style guidelines, and that you have performed a self-review, commented your code, and made corresponding changes to the documentation.
By following this template, you help streamline the review process and improve the quality of the codebase.
- Address Feedback: Be responsive to feedback from reviewers and make necessary changes.
- Merge: Once your pull request is approved, it will be merged by a project maintainer.
Thank you for contributing!