Skip to content

Encoding/decoding library for the IATA Bar Coded Boarding Pass

License

Notifications You must be signed in to change notification settings

georgesmith46/bcbp

Repository files navigation

Build License Bundlephobia Version

BCBP

Encoding/decoding library for the IATA Bar Coded Boarding Pass

  • Supports version 6 of the BCBP standard
  • Supports any number of legs

Getting started

Installation

Installation is done using the npm install command:

$ npm install bcbp

Encode

encode(bcbp: BarcodedBoardingPass) => string

Example

import { encode } from "bcbp";

let output = encode({
  data: {
    legs: [
      {
        operatingCarrierPNR: "ABC123",
        departureAirport: "YUL",
        arrivalAirport: "FRA",
        operatingCarrierDesignator: "AC",
        flightNumber: "0834",
        flightDate: new Date("2020-08-13T00:00:00.000Z"),
        compartmentCode: "F",
        seatNumber: "001A",
        checkInSequenceNumber: "0025",
        passengerStatus: "1",
      },
    ],
    passengerName: "DESMARAIS/LUC",
  },
});

console.log(output);
// M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 106>60000

Decode

decode(bcbp: string, referenceYear?: number) => BarcodedBoardingPass

Example

import { decode } from "bcbp";

let output = decode(
  "M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 100"
);

console.log(output.data.passengerName);
// DESMARAIS/LUC

Reference Year

Define the year which is used when parsing date fields. If this is undefined, the current year is used.

import { decode } from "bcbp";

let output = decode(
  "M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 100",
  2010
);

console.log(output.data.legs[0].flightDate.toISOString());
// "2010-08-14T00:00:00.000Z"

BarcodedBoardingPass

See types.ts for the definition.

License

MIT