npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-iata-bcbp

v1.0.0

Published

Node Red nodes to decode and encode IATA Resolution 792 Compliant Boarding Pass Barcodes

Downloads

20

Readme

node-red-contrib-iata-bcbp

GitHub version GitHub issues GitHub license Twitter

A set of Node-Red nodes to decode and encode IATA Resolution 792 Compliant Boarding Pass Barcode Data.

This is a Node-Red wrapper for the work by georgesmith46's bcbp NPM node https://github.com/georgesmith46/bcbp.

Installing and Setting up

Add the IATA BCBP node to node-red through the manage palette tab or command line.

Usage

Here's an example of basic usage:

example

Example Flow

User guide

Encode Node

Converts a JSON object to a BCBP string. Any of the following parameters can be skipped (except legs).

Object Structure

|Name|Description|Example values| |----|----|----| |passengerName|Passenger Name|DESMARAIS/LUCDOE/JOHN| |passengerDescription|Passenger Description|0 - Adult1 - Male2 - Female3 - Child4 - Infant5 - No passenger (cabin baggage)6 - Adult travelling with infant7 - Unaccompanied minor| |checkInSource|Source of check-in|W - WebK - Airport KioskR - Remote or Off Site KioskM - Mobile DeviceO - Airport AgentT - Town AgentV - Third Party Vendor| |boardingPassIssuanceSource|Source of Boarding Pass Issuance|W - WebK - Airport KioskX - Transfer KioskR - Remote or Off Site KioskM - Mobile DeviceO - Airport AgentT - Town AgentV - Third Party Vendor| |issuanceDate|Date of Issue of Boarding Pass|6225ISO 8601 formatted stringMoment.js objectJavaScript date object| |documentType|Document Type|B - Boarding PassI - Itinery Receipt| |boardingPassIssuerDesignator|Airline Designator of boarding pass issuer|AC| |baggageTagNumber|Baggage Tag Licence Plate Number(s)|0014123456003| |firstBaggageTagNumber|1st Non-Consecutive Baggage Tag Licence Plate Number|0014123456003| |secondBaggageTagNumber|2nd Non-Consecutive Baggage Tag Licence Plate Number|0014123456003| |securityDataType|Type of Security Data|1| |securityData|Security Data|GIWVC5EH7JNT...| |legs|Repeatable legs data|Array - See table below|

Legs Structure

Any of the following parameters can be skipped.

|Name|Description|Example values| |----|----|----| |operatingCarrierPNR|Operating carrier PNR Code|ABC123| |departureAirport|From City Airport Code|YUL| |arrivalAirport|To City Airport Code|FRA| |operatingCarrierDesignator|Operating carrier Designator|AC| |flightNumber|Flight Number|0834| |flightDate|Date of Flight|226ISO 8601 formatted stringMoment.js objectJavaScript date object| |compartmentCode|Compartment Code|F| |seatNumber|Seat Number|001A| |checkInSequenceNumber|Check-in Sequence Number|0025| |passengerStatus|Passenger Status|0 - Ticket issuance/passenger not checked in1 - Ticket issuance/passenger checked in2 - Bag checked/passenger not checked in3 - Bag checked/passenger checked in4 - Passenger passed security check5 - Passenger passed security gate exit (coupon used)6 - Transit7 - Standby8 - Boarding data revalidation done9 - Original boarding line used at time of ticket issuanceA - Up- or down-grading required at close out| |airlineNumericCode|Airline Numeric Code|014| |serialNumber|Document Form/Serial Number|1234567890| |selecteeIndicator|Selectee indicator|0| |internationalDocumentationVerification|International Documentation Verification|0 - Travel document verification not required1 - Travel document verification required2 - Travel document verification performed| |marketingCarrierDesignator|Marketing carrier designator|AC| |frequentFlyerAirlineDesignator|Frequent Flyer Airline Designator|AC| |frequentFlyerNumber|Frequent Flyer Number|1234567890123| |idIndicator|ID/AD Indicator|0| |freeBaggageAllowance|Free Baggage Allowance|20K| |fastTrack|Fast Track|YNtruefalse| |airlineInfo|For individual airline use|LX58Z|

Example JSON Object

{
    "legs": [
        {
            "operatingCarrierPNR": "ABC123",
            "departureAirport": "YUL",
            "arrivalAirport": "FRA",
            "operatingCarrierDesignator": "AC",
            "flightNumber": "0834",
            "flightDate": "2018-08-14T00:00:00.000Z",
            "compartmentCode": "F",
            "seatNumber": "001A",
            "checkInSequenceNumber": "0025",
            "passengerStatus": "1"
        }
    ],
    "passengerName": "DESMARAIS/LUC"
}

Outputs:

M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 106>60000

Decode Node

Converts a BCBP string to a JSON object. The returned object uses the same data structure as the Encode node above.

Example String

M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 106>60000

Outputs:

{
    "legs": [
        {
            "operatingCarrierPNR": "ABC123",
            "departureAirport": "YUL",
            "arrivalAirport": "FRA",
            "operatingCarrierDesignator": "AC",
            "flightNumber": "0834",
            "flightDate": "2018-08-14T00:00:00.000Z",
            "compartmentCode": "F",
            "seatNumber": "001A",
            "checkInSequenceNumber": "0025",
            "passengerStatus": "1"
        }
    ],
    "passengerName": "DESMARAIS/LUC"
}
*/

To Do

  1. [ ] Add further error handling / data checks
  2. [ ] Add data capture / export
  3. [ ] Add boarding pass validation node against airline DCS host using IATA BCBP XML format
  4. [ ] Add basic validation rules engine
  5. [ ] Add Barcode Image Decode
  6. [ ] Add Boarding Pass template generation

Authors & Contributors

Contributions welcome! Feel free to fork this and provide updates and new features. Don't forget to submit a pull request!

License

This project is licensed under the GPL3.0 License - see the LICENSE file for details

Acknowledgments

This Node-RED module is based on the great work of georgesmith46 - georgesmith46, using his bcbp libraries.

Changelog

v1.0.0 (latest)

  • Initial Release
  • IATA BCBP Decode Function
  • IATA BCBP Encode Function