sabre-legacy-client 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,21 @@
1
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
- }) : x)(function(x) {
4
- if (typeof require !== "undefined") return require.apply(this, arguments);
5
- throw Error('Dynamic require of "' + x + '" is not supported');
6
- });
1
+ 'use strict';
2
+
3
+ var fastXmlParser = require('fast-xml-parser');
7
4
 
8
5
  // src/common/utils/get-sub-string.ts
9
6
  function getSubString(strSearch, strBegin, strEnd, withEnd) {
10
7
  let strSub = "";
11
8
  const intBegin = strSearch.indexOf(strBegin);
12
9
  if (intBegin !== -1) {
13
- const startIndex = withEnd ? intBegin : intBegin + strBegin.length;
10
+ const startIndex = intBegin + strBegin.length;
14
11
  const endIndex = strSearch.indexOf(strEnd, startIndex);
15
- if (endIndex !== -1) strSub = strSearch.substring(startIndex, endIndex + (withEnd ? strEnd.length : 0));
12
+ if (endIndex !== -1) strSub = strSearch.substring(startIndex, endIndex + (0));
16
13
  }
17
14
  return strSub;
18
15
  }
19
16
 
20
17
  // package.json
21
- var version = "0.1.13";
18
+ var version = "0.1.14";
22
19
 
23
20
  // src/config.ts
24
21
  var defaultBaseUrl = "https://webservices.platform.sabre.com";
@@ -117,7 +114,7 @@ function tokenCreateRequest(payload) {
117
114
  return soapEnv({ header: header2, body });
118
115
  }
119
116
 
120
- // src/authentication/authentication..ts
117
+ // src/authentication/authentication.ts
121
118
  var Authentication = class {
122
119
  constructor(sabre) {
123
120
  this.sabre = sabre;
@@ -188,9 +185,6 @@ function findQueueLine(text) {
188
185
  const [_, workPcc, homePcc, agent, time, date, bookingId] = found;
189
186
  return { workPcc, homePcc, agent, dateTime: `20${date.slice(5)}-${formatMonth(date.slice(2, 5))}-${date.slice(0, 2)}T${time.slice(0, 2)}:${time.slice(2)}`, bookingId };
190
187
  }
191
-
192
- // src/common/config/xml-parser.config.ts
193
- import { XMLParser } from "fast-xml-parser";
194
188
  var options = {
195
189
  textNodeName: "content",
196
190
  attributeNamePrefix: "",
@@ -200,7 +194,7 @@ var options = {
200
194
  transformAttributeName: (attributeName) => attributeName[0].toLowerCase() + attributeName.slice(1)
201
195
  };
202
196
  var parseXML = (() => {
203
- const parser = new XMLParser(options);
197
+ const parser = new fastXmlParser.XMLParser(options);
204
198
  return (xml) => parser.parse(xml);
205
199
  })();
206
200
 
@@ -333,18 +327,15 @@ function parseIdentifierOptionsToQueueIdentifier(payload) {
333
327
  }
334
328
  };
335
329
  }
336
-
337
- // src/queue/common/utils/builder-queue-identifier.ts
338
330
  function builderQueueIdentifier(payload) {
339
331
  const QueueIdentifierObj = parseIdentifierOptionsToQueueIdentifier(payload);
340
- const { XMLBuilder } = __require("fast-xml-parser");
341
332
  const options2 = {
342
333
  ignoreAttributes: false,
343
334
  attributeNamePrefix: "$",
344
335
  suppressBooleanAttributes: false,
345
336
  suppressEmptyNode: true
346
337
  };
347
- const builder = new XMLBuilder(options2);
338
+ const builder = new fastXmlParser.XMLBuilder(options2);
348
339
  return builder.build(QueueIdentifierObj);
349
340
  }
350
341
 
@@ -605,12 +596,9 @@ function parseSummaryOptionsToSelectionCriteria(payload) {
605
596
  } : void 0
606
597
  };
607
598
  }
608
-
609
- // src/daily-sales/common/utils/parse-summary-options-to-xml.ts
610
599
  function parseSummaryOptionsToXML(payload) {
611
600
  const SelectionCriteria = parseSummaryOptionsToSelectionCriteria(payload);
612
- const { XMLBuilder } = __require("fast-xml-parser");
613
- const builder = new XMLBuilder();
601
+ const builder = new fastXmlParser.XMLBuilder();
614
602
  return builder.build({ SelectionCriteria });
615
603
  }
616
604
 
@@ -872,8 +860,9 @@ var Sabre = class {
872
860
  return this.fetchRequest(requestOptions);
873
861
  }
874
862
  };
875
- export {
876
- ErrorInResponse,
877
- FaultError,
878
- Sabre as SabreLegacy
879
- };
863
+
864
+ exports.ErrorInResponse = ErrorInResponse;
865
+ exports.FaultError = FaultError;
866
+ exports.SabreLegacy = Sabre;
867
+ //# sourceMappingURL=index.cjs.map
868
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/utils/get-sub-string.ts","../package.json","../src/config.ts","../src/common/helpers/binary-security-token.helper.ts","../src/common/helpers/message-header.helper.ts","../src/common/helpers/security.helper.ts","../src/common/helpers/header.helper.ts","../src/common/helpers/soap-env.helper.ts","../src/common/helpers/request.helper.ts","../src/authentication/requests/ping.request.ts","../src/authentication/helpers/username-token.helper.ts","../src/authentication/requests/session-create.request.ts","../src/authentication/requests/session-close.request.ts","../src/authentication/requests/token-create.request.ts","../src/authentication/authentication.ts","../src/currency/helpers/get-month-name-sabre.helper.ts","../src/queue/common/utils/find-queue-line.ts","../src/common/config/xml-parser.config.ts","../src/queue/common/utils/parse-xml-to-queue-access.ts","../src/queue/common/utils/parse-xml-to-queue-count.ts","../src/queue/common/utils/parse-xml-to-queue-place.ts","../src/queue/common/utils/parse-paragraph-to-warnings.ts","../src/queue/common/utils/parse-warnings-to-notifications.ts","../src/queue/common/utils/parse-access-rs-to-access.ts","../src/queue/common/utils/parse-place-rs-to-access.ts","../src/queue/common/utils/parse-xml-to-queue-access-list.ts","../src/queue/common/utils/get-queue-booking-info.ts","../src/queue/common/utils/parse-access-list-rs-to-list.ts","../src/queue/common/helpers/queue-access.helper.ts","../src/queue/common/utils/parse-identifier-options-to-queue-identifier.ts","../src/queue/common/utils/builder-queue-identifier.ts","../src/queue/common/requests/access-list.request.ts","../src/queue/common/requests/access.request.ts","../src/queue/common/helpers/queue-count.helper.ts","../src/queue/common/requests/count.request.ts","../src/queue/common/helpers/navigation-action.helper.ts","../src/queue/common/requests/exit.request.ts","../src/queue/common/requests/ignore.request.ts","../src/queue/common/helpers/queue-place.helper.ts","../src/queue/common/requests/place.request.ts","../src/queue/common/requests/remove.request.ts","../src/queue/queue.ts","../src/daily-sales/common/requests/report.request.ts","../src/daily-sales/common/utils/parse-summary-options-to-selection-criteria.ts","../src/daily-sales/common/utils/parse-summary-options-to-xml.ts","../src/daily-sales/common/requests/summary.request.ts","../src/daily-sales/common/utils/parse-xml-to-daily-sales-summary.ts","../src/daily-sales/common/utils/parse-xml-to-daily-sales-report.ts","../src/daily-sales/daily-sales.ts","../src/common/utils/fault-error.ts","../src/common/utils/error-in-response.ts","../src/common/utils/parse-xml-to-sabre-command.ts","../src/common/helpers/sabre-command.helper.ts","../src/currency/helpers/format-date-sabre.helper.ts","../src/currency/helpers/format-currency-command.helper.ts","../src/currency/requests/currency.request.ts","../src/currency/currency.ts","../src/sabre.ts"],"names":["conversationId","header","options","domain","ListMonth","XMLParser","XMLBuilder","queueAccess","queuePlace"],"mappings":"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","file":"index.cjs","sourcesContent":["export function getSubString (strSearch: string, strBegin: string, strEnd: string, withEnd: boolean): string {\n let strSub = ''\n const intBegin = strSearch.indexOf(strBegin)\n if (intBegin !== -1) {\n const startIndex = withEnd ? intBegin : intBegin + strBegin.length\n const endIndex = strSearch.indexOf(strEnd, startIndex)\n if (endIndex !== -1) strSub = strSearch.substring(startIndex, endIndex + (withEnd ? strEnd.length : 0))\n }\n return strSub\n}","{\n \"name\": \"sabre-legacy-client\",\n \"version\": \"0.1.14\",\n \"description\": \"Sabre Legacy Node.js SDK\",\n \"type\": \"module\",\n \"keywords\": [\n \"sabre\",\n \"legacy\",\n \"client\",\n \"soap\"\n ],\n \"homepage\": \"https://github.com/CarlosIvanSoto/sabre-legacy#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/CarlosIvanSoto/sabre-legacy/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/CarlosIvanSoto/sabre-legacy.git\"\n },\n \"license\": \"MIT\",\n \"author\": \"Carlos Ivan Soto <csoto_99@outlook.com>\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist/**\"\n ],\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"types\": \"./dist/index.d.ts\"\n }\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"link\": \"npm run build & npm link\",\n \"test\": \"jest\",\n \"test:watch\": \"jest --watch\",\n \"prepublish\": \"npm run build\",\n \"example:create-session\": \"node --env-file=.env --import=tsx examples/create-session.ts\",\n \"example:get-summary\": \"node --env-file=.env --import=tsx examples/get-summary.ts\",\n \"example:queue-count\": \"node --env-file=.env --import=tsx examples/queue-count.ts\",\n \"example:refresh-session\": \"node --env-file=.env --import=tsx examples/refresh-session.ts\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.39.2\",\n \"@types/jest\": \"^30.0.0\",\n \"@types/node\": \"^25.2.0\",\n \"eslint\": \"^9.39.2\",\n \"globals\": \"^17.3.0\",\n \"jest\": \"^30.2.0\",\n \"ts-jest\": \"^29.4.6\",\n \"ts-node\": \"^10.9.2\",\n \"tsup\": \"^8.5.1\",\n \"tsx\": \"^4.21.0\",\n \"typescript\": \"^5.9.3\",\n \"typescript-eslint\": \"^8.54.0\"\n },\n \"dependencies\": {\n \"fast-xml-parser\": \"^5.3.4\"\n }\n}\n","import { version } from '../package.json';\n\nconst defaultBaseUrl = 'https://webservices.platform.sabre.com';\nconst defaultUserAgent = `sabre-client-node:${version}`;\nconst defaultConversationId = `sabre.client.node:${version}`\nconst defaultDomain = 'AA'\n\nconst baseUrl =\n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_SOAP_URL || defaultBaseUrl\n : defaultBaseUrl;\n\nconst userAgent =\n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_USER_AGENT || defaultUserAgent\n : defaultUserAgent;\n\nconst domain =\n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_DOMAIN || defaultDomain\n : defaultDomain;\n\nconst conversationId = \n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_CONVERSATION_ID || defaultConversationId\n : defaultConversationId\n\nexport { baseUrl, userAgent, domain, conversationId };","export function binarySecurityToken(token: string) {\n return `<BinarySecurityToken EncodingType=\"Base64Binary\" valueType=\"String\">${token}</BinarySecurityToken>`\n}","import { MessageHeaderOptions } from \"../interfaces/message-header-options.interface\";\n\n/**\n * <MessageHeader xmlns=\"http://www.ebxml.org/namespaces/messageHeader\">\n * <From>\n * <PartyId>{{from}}</PartyId>\n * </From>\n * <To>\n * <PartyId>{{to}}</PartyId>\n * </To>\n * <ConversationId>{{conversationId}}</ConversationId>\n * <Action>{{action}}</Action>\n * </MessageHeader>\n * @param payload \n * @returns string\n */\nfunction messageHeader(payload: MessageHeaderOptions) {\n const {\n from = 'Agency',\n to = 'SWS',\n conversationId = '2021.01.DevStudio',\n action,\n } = payload;\n return `<MessageHeader xmlns=\"http://www.ebxml.org/namespaces/messageHeader\"><From><PartyId>${from}</PartyId></From><To><PartyId>${to}</PartyId></To><ConversationId>${conversationId}</ConversationId><Action>${action}</Action></MessageHeader>`\n}\n\nexport { messageHeader }","/**\n * <Security xmlns=\"http://schemas.xmlsoap.org/ws/2002/12/secext\">\n * {{authorization}}\n * </Security>\n * @param authorization\n * @returns \n */\nfunction security (authorization: string): string {\n return `<Security xmlns=\"http://schemas.xmlsoap.org/ws/2002/12/secext\">${authorization}</Security>`\n}\n\nexport { security }","import { HeaderOptions } from \"../interfaces/header-options.interface\"\nimport { binarySecurityToken } from \"./binary-security-token.helper\"\nimport { messageHeader } from \"./message-header.helper\"\nimport { security } from \"./security.helper\"\n\n/**\n * \n * {{messageHeader({ action, conversationId }) + security(authorization)}}\n * \n * @param payload HeaderOptions\n * @returns string\n */\nfunction header (payload: HeaderOptions) {\n const { action, conversationId, authorization } = payload\n const binarySecurity = binarySecurityToken(authorization)\n return messageHeader({ action, conversationId }) + security(binarySecurity)\n}\nexport { header }","import { SoapEnvOptions } from \"../interfaces/soap-env-options.interface\"\n\n/**\n * <SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n * <SOAP-ENV:Header>\n * {{header}}\n * </SOAP-ENV:Header>\n * <SOAP-ENV:Body>\n * {{body}}\n * </SOAP-ENV:Body>\n * </SOAP-ENV:Envelope>\n * @param payload \n * @returns string\n */\nfunction soapEnv (payload: SoapEnvOptions) {\n const { header, body } = payload\n return `<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP-ENV:Header>${header}</SOAP-ENV:Header><SOAP-ENV:Body>${body}</SOAP-ENV:Body></SOAP-ENV:Envelope>`\n}\n\nexport { soapEnv }","import { RequestOptions } from \"../interfaces/request-options.interface\";\nimport { header } from \"./header.helper\";\nimport { soapEnv } from \"./soap-env.helper\";\n\n/**\n * {{header({ action, authorization })}}\n * \n * {{body}}\n * \n * {{footer}}\n * @param payload \n * @returns string\n */\nfunction request(payload: RequestOptions) {\n const { action, conversationId, authorization, body } = payload;\n return soapEnv({\n header: header({ action, conversationId, authorization }),\n body\n })\n}\n\nexport { request }","import { request } from \"../../common/helpers/request.helper\"\nimport { ActionsRQ } from \"../../common/interfaces/actions.interface\"\nimport { PingOptions } from \"./interfaces/ping-options.interface\"\n\n/**\n * {{header}}\n * \n * <OTA_PingRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2003/05\"/>\n * \n * {{footer}}\n * @param payload PingOptions\n * @returns string\n */\nfunction pingRequest(payload: PingOptions): string {\n const body = '<OTA_PingRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2003/05\"/>'\n return request({ body, action: ActionsRQ.PING, ...payload })\n}\n\nexport { pingRequest }","import { UsernameTokenOptions } from \"../requests/interfaces/username-token-options.interface\"\n/**\n * <UsernameToken>\n * <Username>{{username}}</Username>\n * <Password>{{password}}</Password>\n * <Organization>{{pcc}}</Organization>\n * <Domain>{{domain}}</Domain>\n * <ClientId>{{clientId}}</ClientId>\n * <ClientSecret>{{clientSecret}}</ClientSecret>\n * </UsernameToken>\n * @param options \n * @returns string\n */\nfunction usernameToken (options: UsernameTokenOptions): string {\n const { username, password, pcc, domain } = options\n return `<UsernameToken><Username>${username}</Username><Password>${password}</Password><Organization>${pcc}</Organization><Domain>${domain}</Domain></UsernameToken>`\n}\nexport { usernameToken }","import { ActionsRQ } from \"../../common/interfaces/actions.interface\"\nimport { messageHeader } from \"../../common/helpers/message-header.helper\"\nimport { security } from \"../../common/helpers/security.helper\"\nimport { soapEnv } from \"../../common/helpers/soap-env.helper\"\nimport { usernameToken } from \"../helpers/username-token.helper\"\nimport { SessionCreateOptions } from \"./interfaces/session-create-options.interface\"\n\n/**\n * {{header = message + security ( usernameToken )}}\n * \n * <SessionCreateRQ returnContextID=\"true\" Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>\n * \n * {{footer}}\n * @param payload SessionCreateOptions\n * @returns string\n */\nfunction sessionCreateRequest(payload: SessionCreateOptions): string {\n const { conversationId, authorization } = payload\n const message = messageHeader({\n action: ActionsRQ.SESSION_CREATE,\n conversationId: conversationId,\n to: 'Sabre_API',\n });\n const header = message + security(usernameToken(authorization))\n const body = '<SessionCreateRQ returnContextID=\"true\" Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>'\n return soapEnv({ header, body })\n}\n\nexport { sessionCreateRequest }","import { ActionsRQ } from './../../common/interfaces/actions.interface';\nimport { request } from \"../../common/helpers/request.helper\"\nimport { SessionCloseOptions } from \"./interfaces/session-close-options.interface\"\n\n/**\n * {{header}}\n * \n * <SessionCloseRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>\n * \n * {{footer}}\n * @param payload SessionCloseOptions \n * @returns string\n */\nfunction sessionCloseRequest (payload: SessionCloseOptions): string {\n const body = '<SessionCloseRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>'\n return request({ body, action: ActionsRQ.SESSION_CLOSE, ...payload })\n}\n\nexport { sessionCloseRequest }","import { ActionsRQ } from \"../../common/interfaces/actions.interface\"\nimport { messageHeader } from \"../../common/helpers/message-header.helper\"\nimport { security } from \"../../common/helpers/security.helper\"\nimport { soapEnv } from \"../../common/helpers/soap-env.helper\"\nimport { usernameToken } from \"../helpers/username-token.helper\"\nimport { TokenCreateOptions } from \"./interfaces/token-create-options.interface\"\n\n/**\n * {{header}}\n * \n * <TokenCreateRQ Version=\"1.0.0\" xmlns=\"http://webservices.sabre.com\"/>\n * \n * {{footer}}\n * @param payload TokenCreateOptions\n * @returns string\n */\nfunction tokenCreateRequest(payload: TokenCreateOptions): string {\n const { conversationId, authorization } = payload\n const message = messageHeader({\n action: ActionsRQ.TOKEN_CREATE,\n conversationId: conversationId,\n to: 'Sabre_API',\n });\n const header = message + security(usernameToken(authorization))\n const body = '<TokenCreateRQ Version=\"1.0.0\" xmlns=\"http://webservices.sabre.com\"/>'\n return soapEnv({ header, body })\n}\n\nexport { tokenCreateRequest }","import { Sabre } from \"../sabre\";\nimport { ActionsRQ } from \"../common/interfaces/actions.interface\";\nimport { pingRequest, sessionCloseRequest, sessionCreateRequest, tokenCreateRequest } from \"./requests\";\n\nexport class Authentication {\n constructor(private readonly sabre: Sabre) {}\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/create_session\n * @returns string\n */\n async sessionCreate(): Promise<string> {\n this.sabre.setAction(ActionsRQ.SESSION_CREATE);\n const xml = await this.sabre.auth(sessionCreateRequest);\n return xml\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/close_session\n * @returns string\n */\n async sessionClose(): Promise<string> {\n this.sabre.setAction(ActionsRQ.SESSION_CLOSE);\n const xml = await this.sabre.post(sessionCloseRequest);\n return xml\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/refresh_session\n * @returns string\n */\n async ping(): Promise<string> {\n this.sabre.setAction(ActionsRQ.PING);\n const xml = await this.sabre.post(pingRequest);\n return xml\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/create_access_token\n * @returns string\n */\n async tokenCreate(): Promise<string> {\n this.sabre.setAction(ActionsRQ.TOKEN_CREATE);\n const xml = await this.sabre.auth(tokenCreateRequest);\n return xml\n }\n}","export enum ListMonth {\n 'JAN' = 1,\n 'FEB',\n 'MAR',\n 'APR',\n 'MAY',\n 'JUN',\n 'JUL',\n 'AUG',\n 'SEP',\n 'OCT',\n 'NOV',\n 'DEC',\n}\nexport type MonthNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 \nexport type Month = keyof typeof ListMonth\nexport const getMonthName = (month: MonthNumber) => ListMonth[month];\nexport const formatMonth = (month: Month) => String(ListMonth[month]).padStart(2, '0');\n","import { formatMonth, Month } from \"../../../currency/helpers/get-month-name-sabre.helper\"\nimport { QueueLine } from \"./interfaces\"\n\nfunction findQueueLine(text?: string): QueueLine {\n if (!text) throw new Error('Missing text.')\n // example: 8AYC.8AYC*AGH 1341/29JUN24 YWDSRL H\n const LINE_REGEX = /(\\w{4})\\.(\\w{4})\\*(A{1}[A-Z0-9]{2})\\s(\\d{4})\\/(\\d{2}[A-Z]{3}\\d{2})\\s([A-Z0-9]{6})/g\n const found = LINE_REGEX.exec(text)\n if (!found) throw new Error('Queue line not found')\n const [_, workPcc, homePcc, agent, time, date, bookingId ] = found\n return { workPcc, homePcc, agent, dateTime: `20${date.slice(5)}-${formatMonth(date.slice(2,5) as Month)}-${date.slice(0,2)}T${time.slice(0,2)}:${time.slice(2)}`, bookingId }\n}\nexport { findQueueLine }","import { X2jOptions, XMLParser } from \"fast-xml-parser\";\n\nconst options: X2jOptions = {\n textNodeName: \"content\",\n attributeNamePrefix : \"\",\n removeNSPrefix: true,\n ignoreAttributes: [/^xmlns:/, /^eb:/, /^soap-env:/, /^xmlns/, /^Version/],\n transformTagName: (tagName) => tagName[0].toLowerCase() + tagName.slice(1),\n transformAttributeName: (attributeName) => attributeName[0].toLowerCase() + attributeName.slice(1)\n};\n\n// function parseXML<T>(xml: string): T {\n// return new XMLParser(options).parse(xml)\n// } \n// export { parseXML }\n\nexport const parseXML = (() => {\n const parser = new XMLParser(options);\n return <T>(xml: string):T => parser.parse(xml);\n})();\n","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { QueueAccessResponseSuccess, QueueAccessRS } from \"./interfaces/queue-access.interface\"\n\nfunction parseXMLToQueueAccess(body: string): QueueAccessRS {\n const { queueAccessRS } = parseXML<QueueAccessResponseSuccess>(body)\n return queueAccessRS\n}\n\nexport { parseXMLToQueueAccess }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { QueueCountResponseSuccess, QueueCountRS } from \"./interfaces/queue-count.interface\"\n\nfunction parseXMLToQueueCount(body: string): QueueCountRS {\n const { queueCountRS } = parseXML<QueueCountResponseSuccess>(body)\n return queueCountRS\n}\n\nexport { parseXMLToQueueCount }","import { parseXML } from \"../../../common/config/xml-parser.config\";\nimport { QueuePlaceResponseSuccess, QueuePlaceRS } from \"./interfaces\";\n\nfunction parseXMLToQueuePlace(body: string): QueuePlaceRS {\n return parseXML<QueuePlaceResponseSuccess>(body).queuePlaceRS\n}\n\nexport { parseXMLToQueuePlace }","import { Warning } from \"../interfaces\"\nimport { BookingText } from \"./interfaces\"\n\nfunction parseParagraphToWarnings(payload: BookingText): Array<Warning> {\n const LIMIT_NOTIFICATIONS = 5\n const WARNING_REGEX = /\\d{3}\\s{2}.+/g\n \n return payload.text\n .slice(0, LIMIT_NOTIFICATIONS)\n .filter(text => text.match(WARNING_REGEX))\n .map(warningInLine => {\n const [code, message] = warningInLine.split(' ')\n return { code, message }\n })\n}\nexport { parseParagraphToWarnings }","import { Notification } from \"../interfaces\"\nimport { parseWarningsNotificationsOptions } from \"./interfaces\"\n\nfunction parseWarningsToNotifications(payload: parseWarningsNotificationsOptions): Array<Notification> {\n return payload.warnings.map(warning => ({ queue: payload.queue, warning }))\n}\nexport { parseWarningsToNotifications }","import { QueueAccess, QueueAccessRS } from \"./interfaces\"\nimport { QueueContext } from \"./interfaces/queue-context.interface\"\nimport { parseParagraphToWarnings } from \"./parse-paragraph-to-warnings\"\nimport { parseWarningsToNotifications } from \"./parse-warnings-to-notifications\"\n\nfunction parseAccessResponseToAccess(\n context: QueueContext,\n accessResponse: QueueAccessRS\n): QueueAccess {\n if (!accessResponse.line?.uniqueID?.iD) {\n throw new Error(accessResponse.applicationResults.error?.systemSpecificResults?.message || 'Unknown error');\n }\n const { queueNumber: queue } = context\n const { paragraph, line } = accessResponse;\n const warnings = parseParagraphToWarnings(paragraph)\n const notifications = parseWarningsToNotifications({ queue, warnings })\n return { \n dateTime: line.dateTime,\n agent: line.pOS.source.agentSine,\n pcc: line.pOS.source.pseudoCityCode,\n bookingId: line.uniqueID.iD,\n notifications,\n paragraph,\n queue\n }\n}\nexport { parseAccessResponseToAccess }","import { findQueueLine } from \"./find-queue-line\";\nimport { QueueAccess, QueuePlaceRS } from \"./interfaces\"\nimport { QueueContext } from \"./interfaces/queue-context.interface\"\nimport { parseParagraphToWarnings } from \"./parse-paragraph-to-warnings\"\nimport { parseWarningsToNotifications } from \"./parse-warnings-to-notifications\"\n\nfunction parsePlaceResponseToAccess(\n context: QueueContext,\n placeResponse: QueuePlaceRS\n): QueueAccess {\n if (!placeResponse.text) {\n throw new Error(placeResponse.applicationResults.error?.systemSpecificResults?.message || 'Unknown error');\n }\n const { queueNumber: queue } = context\n const warnings = parseParagraphToWarnings(placeResponse)\n const notifications = parseWarningsToNotifications({ queue, warnings })\n const { dateTime, agent, homePcc, bookingId } = findQueueLine(placeResponse.text.pop())\n return { \n dateTime,\n agent,\n pcc: homePcc,\n bookingId,\n notifications,\n paragraph: placeResponse,\n queue\n }\n}\nexport { parsePlaceResponseToAccess }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { QueueAccessListResponseSuccess } from \"./interfaces/queue-access-list.interface\"\n\nfunction parseXMLToQueueAccessList(body: string) {\n const { queueAccessRS } = parseXML<QueueAccessListResponseSuccess>(body)\n return queueAccessRS\n}\n\nexport { parseXMLToQueueAccessList }","import { formatMonth, Month } from \"../../../currency/helpers/get-month-name-sabre.helper\"\nimport { QueueBookingInfo } from \"./interfaces\"\n\nfunction getQueueBookingInfo(text?: string): QueueBookingInfo {\n if (!text) throw new Error('Missing text.')\n // example: \"1 JGKGPN PLT MAM 15FEB25 2100 1QUIROZ ARREOLA\"\n const BOOKING_INFO_REGEX = /(\\d+)\\s+([A-Z0-9]{6})\\s+(\\w{3,})[\\s|\\/]+(\\w{3,})\\s+(\\d{2}[A-Z]{3}\\d{2})\\s+(\\d{4})\\s+[1](.+)/g\n const found = BOOKING_INFO_REGEX.exec(text)\n if (!found) throw new Error('Queue booking info not found')\n const [_, num, bookingId, pcc, agent, date, time, name ] = found\n return { num, bookingId, placeBy: `${pcc} ${agent}`, date: `20${date.slice(5)}-${formatMonth(date.slice(2,5) as Month)}-${date.slice(0,2)}T${time.slice(0,2)}:${time.slice(2)}`, name }\n}\nexport { getQueueBookingInfo }","import { getQueueBookingInfo } from \"./get-queue-booking-info\";\nimport { QueueAccessList, QueueAccessListRS } from \"./interfaces/queue-access-list.interface\";\nimport { QueueContext } from \"./interfaces/queue-context.interface\"\n\nfunction parseAccessListResponseToList(\n context: QueueContext,\n accessListResponse: QueueAccessListRS\n): QueueAccessList {\n if (!accessListResponse.applicationResults?.success) {\n throw new Error(accessListResponse.applicationResults.error?.systemSpecificResults?.message || 'Unknown error');\n }\n const { queueNumber: queue } = context\n const { paragraph, line } = accessListResponse;\n return { \n lines: line ? \n line.map(qall => ({ \n index: qall.number,\n dateTime: qall.dateTime,\n passengerName: qall.passengerName,\n agent: qall.pOS.source.agentSine,\n pcc: qall.pOS.source.pseudoCityCode,\n bookingId: qall.uniqueID.iD\n }))\n : undefined,\n list: paragraph.text.slice(2, -1).map(text => getQueueBookingInfo(text)),\n paragraph,\n queue\n }\n}\nexport { parseAccessListResponseToList }","/**\n * <QueueAccessRQ ReturnHostCommand=\"true\" Version=\"2.1.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">\n * {{queueInfo}}\n * </QueueAccessRQ>\n * @param queueInfo string\n * @returns string\n */\nfunction queueAccess(queueInfo: string): string {\n return `<QueueAccessRQ ReturnHostCommand=\"false\" Version=\"2.1.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">${queueInfo}</QueueAccessRQ>`\n}\nexport { queueAccess }","import { QueueIdentifierOptions } from \"../helpers/interfaces/queue-identifier-options.interface\"\n\nfunction parseIdentifierOptionsToQueueIdentifier(payload: QueueIdentifierOptions) {\n return {\n QueueIdentifier: {\n \"$Number\": payload.number,\n \"$PrefatoryInstructionCode\": payload.code,\n \"$PseudoCityCode\": payload.pcc,\n\n List: payload.ind \n ? {\n \"$Ind\": payload.ind,\n \"$PrimaryPassenger\": payload.primaryPassenger\n }\n : undefined\n }\n }\n}\n\nexport { parseIdentifierOptionsToQueueIdentifier }","import { QueueIdentifierOptions } from \"../helpers/interfaces/queue-identifier-options.interface\";\nimport { parseIdentifierOptionsToQueueIdentifier } from \"./parse-identifier-options-to-queue-identifier\";\nimport { XMLBuilder } from 'fast-xml-parser';\n/**\n * \n * <QueueIdentifier PseudoCityCode=\"{{pcc}}\"/>\n * or \n * <QueueIdentifier Number=\"{{number}}\" PseudoCityCode=\"{{pcc}}\"/>\n * or \n * <QueueIdentifier Number=\"{{number}}\" PseudoCityCode=\"{{pcc}}\"/>\n * or\n * <QueueIdentifier Number=\"{{number}}\" PrefatoryInstructionCode=\"{{code}}\" PseudoCityCode=\"{{pcc}}\">\n * <List Ind=\"true\" PrimaryPassenger=\"true\" />\n * </QueueIdentifier>\n * \n * @param options QueueIdentifierOptions\n * @returns string\n */\n\nfunction builderQueueIdentifier(payload: QueueIdentifierOptions): string {\n const QueueIdentifierObj = parseIdentifierOptionsToQueueIdentifier(payload)\n const options = {\n ignoreAttributes: false,\n attributeNamePrefix: \"$\",\n suppressBooleanAttributes: false,\n suppressEmptyNode: true\n }\n const builder = new XMLBuilder(options);\n return builder.build(QueueIdentifierObj);\n}\n\nexport { builderQueueIdentifier }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queueAccess } from \"../../common/helpers/queue-access.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { AccessListOptions } from \"./interfaces/access-list-options.interface\";\n\n/**\n * {{header}}\n * \n * {{queueAccess(queueInfo)}}\n * \n * {{footer}}\n * @param options AccessOptions\n * @returns string\n */\nfunction accessListRequest(options: AccessListOptions): string {\n const { pcc, number, authorization, conversationId, primaryPassenger } = options;\n const queueInfo = builderQueueIdentifier({ pcc, number, ind: true, primaryPassenger });\n const body = queueAccess(queueInfo);\n return request({\n body, authorization, conversationId, action: ActionsRQ.QUEUE_ACCESS\n })\n}\n\nexport { accessListRequest }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queueAccess } from \"../../common/helpers/queue-access.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { AccessOptions } from \"./interfaces/access-options.interface\";\n\n/**\n * {{header}}\n * \n * {{queueAccess(queueInfo)}}\n * \n * {{footer}}\n * @param options AccessOptions\n * @returns string\n */\nfunction accessRequest(options: AccessOptions): string {\n const { pcc, number, authorization, conversationId } = options;\n const queueInfo = builderQueueIdentifier({ pcc, number });\n const body = queueAccess(queueInfo);\n return request({\n body, authorization, conversationId, action: ActionsRQ.QUEUE_ACCESS\n })\n}\n\nexport { accessRequest }","/**\n * <QueueCountRQ xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\" ReturnHostCommand=\"true\" Version=\"2.2.1\">\n * <QueueInfo>{{queueInfo}}</QueueInfo>\n * </QueueCountRQ>\n * \n * @param queueInfo string\n * @returns string\n */\nfunction queueCount(queueInfo: string): string {\n return `<QueueCountRQ xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\" ReturnHostCommand=\"false\" Version=\"2.2.1\"><QueueInfo>${queueInfo}</QueueInfo></QueueCountRQ>`\n}\n\nexport { queueCount }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queueCount } from \"../../common/helpers/queue-count.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { CountOptions } from \"./interfaces/count-options.interface\";\n\n/**\n * {{header}}\n * \n * {{queueCount(queueInfo)}}\n * \n * {{footer}}\n * @param options QueueCountOptions\n * @returns string\n */\nfunction countRequest(options: CountOptions): string {\n const { authorization, conversationId, pcc } = options;\n const queueInfo = builderQueueIdentifier({ pcc });\n const body = queueCount(queueInfo)\n return request({ \n body,\n authorization,\n conversationId,\n action: ActionsRQ.QUEUE_COUNT\n })\n}\nexport { countRequest }","import { NavigationAction } from \"./interfaces/navigation-actions.interface\";\nimport { queueAccess } from \"./queue-access.helper\"\n\nfunction navigationAction(action: NavigationAction): string {\n const queueInfo = `<Navigation Action=\"${action}\"/>`;\n const body = queueAccess(queueInfo);\n return body\n}\nexport { navigationAction }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { navigationAction } from \"../../common/helpers/navigation-action.helper\"\nimport { ExitOptions } from \"./interfaces/exit-options.interface\";\nimport { NavigationAction } from \"../../common/helpers/interfaces/navigation-actions.interface\"\n\n/**\n * {{header}}\n * \n * {{navigationAction(action)}}\n * \n * {{footer}}\n * @param options ExitOptions\n * @returns string\n */\nfunction exitRequest(options: ExitOptions): string {\n const { authorization, conversationId } = options \n const body = navigationAction(NavigationAction.EXIT);\n return request({ authorization, conversationId, body, action: ActionsRQ.QUEUE_ACCESS })\n}\n\nexport { exitRequest }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { navigationAction } from \"../../common/helpers/navigation-action.helper\"\nimport { IgnoreOptions } from \"./interfaces/ignore-options.interface\";\nimport { NavigationAction } from \"../../common/helpers/interfaces/navigation-actions.interface\"\n\n/**\n * {{header}}\n * \n * {{navigationAction(action)}}\n * \n * {{footer}}\n * @param options IgnoreOptions\n * @returns string\n */\nfunction ignoreRequest(options: IgnoreOptions): string {\n const { authorization, conversationId } = options \n const body = navigationAction(NavigationAction.IGNORE);\n return request({ authorization, conversationId, body, action: ActionsRQ.QUEUE_ACCESS })\n}\n\nexport { ignoreRequest }","\n/**\n * <QueuePlaceRQ ReturnHostCommand=\"true\" Version=\"2.0.4\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">\n * <QueueInfo>{{queueInfo}}</QueueInfo>\n * </QueuePlaceRQ>\n * \n * @param queueInfo string\n * @returns string\n */\nfunction queuePlace(queueInfo: string): string {\n return `<QueuePlaceRQ ReturnHostCommand=\"false\" Version=\"2.0.4\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\"><QueueInfo>${queueInfo}</QueueInfo></QueuePlaceRQ>`\n}\nexport { queuePlace }","\nimport { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queuePlace } from \"../helpers/queue-place.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { PlaceOptions } from \"./interfaces/place-options.inferface\"\n\n/**\n * {{header}}\n * \n * {{queuePlace(queueInfo)}}\n * \n * {{footer}}\n * @param options PlaceOptions\n * @returns string\n */\nfunction placeRequest(options: PlaceOptions): string {\n const { number, pcc, authorization, conversationId } = options; \n const queueInfo = builderQueueIdentifier({ number, code: '11', pcc });\n const body = queuePlace(queueInfo);\n return request({ body, authorization, conversationId, action: ActionsRQ.QUEUE_PLACE })\n}\n\nexport { placeRequest }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { navigationAction } from \"../../common/helpers/navigation-action.helper\"\nimport { NavigationAction } from \"../../common/helpers/interfaces/navigation-actions.interface\"\nimport { RemoveOptions } from \"./interfaces/remove-options.interface\";\n\n/**\n * {{header}}\n * \n * {{navigationAction(action)}}\n * \n * {{footer}}\n * @param options RemoveOptions\n * @returns string\n */\nfunction removeRequest(options: RemoveOptions): string {\n const { authorization, conversationId } = options \n const body = navigationAction(NavigationAction.IGNORE);\n return request({ authorization, conversationId, body, action: ActionsRQ.QUEUE_ACCESS })\n}\n\nexport { removeRequest }","import { parseXMLToQueueCount, parseXMLToQueueAccess, parseXMLToQueuePlace, parseXMLToQueueAccessList, parseAccessListResponseToList, parseAccessResponseToAccess, parsePlaceResponseToAccess } from \"./common/utils\";\nimport { QueueAccessListOptions, QueueAccessListResponse, QueueAccessOptions, QueueAccessResponse, QueueCountResponse, QueueExitResponse, QueueIgnoreResponse, QueuePlaceOptions, QueuePlaceResponse, QueueRemoveResponse } from \"./interfaces\";\nimport { countRequest, accessRequest, ignoreRequest, removeRequest, exitRequest, placeRequest, accessListRequest } from \"./common/requests\";\nimport { ActionsRQ, ActionsRS } from \"../common/interfaces/actions.interface\";\nimport { Sabre } from \"../sabre\";\n\nexport class Queue {\n private readonly meta = {\n queue: '',\n }\n constructor(private readonly sabre: Sabre) { }\n\n /**\n * List Queues\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Get_Queue_Count\n * @param pcc string\n * @returns QueueCountResponse\n */\n async count(pcc?: string): Promise<QueueCountResponse> {\n if (!pcc) {\n if (typeof process !== 'undefined' && process.env) {\n pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!pcc) throw new Error('Missing pcc. Set it in count(\"PCC\")')\n\n this.sabre.setAction(ActionsRQ.QUEUE_COUNT)\n const xml = await this.sabre.post((opts) => countRequest({\n pcc, ...opts\n }))\n return parseXMLToQueueCount(xml)\n }\n\n /**\n * Access queue \n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @param payload QueueAccessOptions\n * @returns QueueAccessResponse\n */\n async access(payload: QueueAccessOptions): Promise<QueueAccessResponse> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in access({ pcc, number })')\n const { number, pcc } = payload\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post((opts) => accessRequest({\n number, pcc, ...opts\n }))\n this.meta.queue = number\n const queueAccess = parseXMLToQueueAccess(xml)\n return parseAccessResponseToAccess({ queueNumber: this.meta.queue }, queueAccess)\n }\n /**\n * Get PNR list from queue (Stateless)\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @param payload QueueAccessListOptions\n * @returns QueueAccessListResponse\n */\n async accessList(payload: QueueAccessListOptions): Promise<QueueAccessListResponse> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in access({ pcc, number })')\n const { number, pcc, primaryPassenger } = payload\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post((opts) => accessListRequest({\n number, pcc, primaryPassenger, ...opts\n }))\n const queueAccessList = parseXMLToQueueAccessList(xml)\n return parseAccessListResponseToList({ queueNumber: number }, queueAccessList)\n }\n\n /**\n * Ignore PNR & Next\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @returns QueueIgnoreResponse\n */\n async ignore(): Promise<QueueIgnoreResponse> {\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post(ignoreRequest)\n const queueAccess = parseXMLToQueueAccess(xml)\n return parseAccessResponseToAccess({ queueNumber: this.meta.queue }, queueAccess)\n }\n\n /**\n * Remove PNR & Next\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @returns QueueRemoveResponse\n */\n async remove(): Promise<QueueRemoveResponse> {\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post(removeRequest)\n const queueAccess = parseXMLToQueueAccess(xml)\n return parseAccessResponseToAccess({ queueNumber: this.meta.queue }, queueAccess)\n }\n\n /**\n * Ignore PNR & Exit\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @returns QueueExitResponse\n */\n async exit(): Promise<QueueExitResponse> {\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post(exitRequest)\n const queueAccess = parseXMLToQueueAccess(xml)\n if (queueAccess.applicationResults.error) {\n throw new Error(queueAccess.applicationResults.error?.systemSpecificResults?.message);\n }\n return {\n paragraph: queueAccess.paragraph,\n }\n }\n\n /**\n * Queue Place \"Stateful Single Queue\"\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Place_Queue_Message\n * @param payload QueuePlaceOptions\n * @returns QueuePlaceResponse\n */\n async place(payload: QueuePlaceOptions): Promise<QueuePlaceResponse> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in place({ pcc, number })')\n const { number, pcc } = payload\n this.sabre.setAction(ActionsRQ.QUEUE_PLACE)\n const xml = await this.sabre.post((opts) => placeRequest({\n number, pcc, ...opts\n }))\n const queuePlace = parseXMLToQueuePlace(xml)\n return parsePlaceResponseToAccess({ queueNumber: this.meta.queue }, queuePlace)\n }\n}","\nimport { request } from \"../../../common/helpers/request.helper\"\nimport { ActionsRQ } from \"../../../common/interfaces\"\nimport { ReportRequestOptions } from \"./interfaces/report-options.interface\"\n\n/**\n * <DailySalesReportRQ ReturnHostCommand=\"false\" Version=\"2.0.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">\n * <SalesReport PseudoCityCode=\"{{pcc_tkt}}\" StartDate=\"{{date}}\"/>\n * </DailySalesReportRQ>\n * @param options ReportOptions\n * @returns string\n */\nfunction reportRequest(options: ReportRequestOptions): string {\n const { pcc, date, authorization, conversationId } = options\n const body = `<DailySalesReportRQ ReturnHostCommand=\"false\" Version=\"2.0.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\"><SalesReport PseudoCityCode=\"${pcc}\" StartDate=\"${date}\"/></DailySalesReportRQ>`\n return request({\n body, action: ActionsRQ.DAILY_SALES_REPORT, authorization, conversationId\n })\n}\n\nexport { reportRequest }","import { SummaryOptions } from \"../requests/interfaces/summary-options.interface\";\nimport { SelectionCriteria } from \"../interfaces\";\n\nfunction parseSummaryOptionsToSelectionCriteria(payload: SummaryOptions): SelectionCriteria {\n return {\n PseudoCityCode: payload.pcc,\n ReportDate: payload.date,\n DocumentNumber: payload.documentNumber,\n SettlementType: payload.settlementType,\n DocumentType: payload.documentType,\n Airline: payload.airline?.code || payload.airline?.number\n ? {\n AirlineCode: payload.airline.code,\n AirlineNumber: payload.airline.number\n }\n : undefined\n }\n}\nexport { parseSummaryOptionsToSelectionCriteria }","import { SummaryOptions } from \"../requests/interfaces/summary-options.interface\";\nimport { parseSummaryOptionsToSelectionCriteria } from \"./parse-summary-options-to-selection-criteria\";\nimport { XMLBuilder } from 'fast-xml-parser';\n\nfunction parseSummaryOptionsToXML(payload: SummaryOptions): string {\n const SelectionCriteria = parseSummaryOptionsToSelectionCriteria(payload)\n const builder = new XMLBuilder();\n return builder.build({ SelectionCriteria });\n}\n\nexport { parseSummaryOptionsToXML }","import { request } from \"../../../common/helpers/request.helper\"\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\"\nimport { parseSummaryOptionsToXML } from \"../utils/parse-summary-options-to-xml\"\nimport { SummaryRequestOptions } from \"./interfaces/summary-options.interface\"\n\n/**\n * <DailySalesSummaryRQ version=\"1.2.2\" xmlns=\"http://www.sabre.com/ns/Ticketing/AsrServices/1.0\">\n * <Header/>\n * <SelectionCriteria>\n * <PseudoCityCode>{{pccTkt}}</PseudoCityCode>\n * <ReportDate>{{date}}</ReportDate>\n * </SelectionCriteria>\n * </DailySalesSummaryRQ>\n * \n * @param options SummaryOptions\n * @returns string\n */\nfunction summaryRequest(options: SummaryRequestOptions): string {\n const { authorization, conversationId, ...summaryOptions } = options\n const selectionCriteria = parseSummaryOptionsToXML(summaryOptions)\n const body = `<DailySalesSummaryRQ version=\"1.2.2\" xmlns=\"http://www.sabre.com/ns/Ticketing/AsrServices/1.0\"><Header/>${selectionCriteria}</DailySalesSummaryRQ>`\n return request({\n body, action: ActionsRQ.AGENCY_REPORT, authorization, conversationId\n })\n}\n\nexport { summaryRequest }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { DailySalesSummaryResponseSuccess } from \"../../interfaces/daily-sales-summary-options.interface\"\n\nfunction parseXMLToDailySalesSummary(payload: string) {\n return parseXML<DailySalesSummaryResponseSuccess>(payload).dailySalesSummaryRS\n}\n\nexport { parseXMLToDailySalesSummary }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { DailySalesReportResponseSuccess } from \"../../interfaces/daily-sales-report-options.interface\"\n\nfunction parseXMLToDailySalesReport(payload: string) {\n return parseXML<DailySalesReportResponseSuccess>(payload).dailySalesReportRS\n}\n\nexport { parseXMLToDailySalesReport }","import { Sabre } from \"../sabre\";\nimport { ActionsRQ } from \"../common/interfaces/actions.interface\";\nimport { reportRequest } from \"./common/requests/report.request\";\nimport { summaryRequest } from \"./common/requests/summary.request\";\nimport { parseXMLToDailySalesSummary } from \"./common/utils/parse-xml-to-daily-sales-summary\";\nimport { parseXMLToDailySalesReport } from \"./common/utils/parse-xml-to-daily-sales-report\";\nimport { DailySalesReportRS, ReportOptions } from \"./interfaces/daily-sales-report-options.interface\";\nimport { DailySalesSummaryRS, SummaryOptions } from \"./interfaces/daily-sales-summary-options.interface\";\n\nexport class DailySales {\n constructor(private readonly sabre: Sabre) {}\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/air/fulfill/Get_Sales_Reports\n * @param payload ReportOptions\n * @returns DailySalesReportRS\n */\n async report(payload: ReportOptions): Promise<DailySalesReportRS> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in report({ pcc, number })')\n\n const { pcc, date } = payload\n this.sabre.setAction(ActionsRQ.DAILY_SALES_REPORT)\n const xml = await this.sabre.post((headersPayload) => reportRequest({ pcc, date, ...headersPayload }))\n return parseXMLToDailySalesReport(xml)\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/air/fulfill/display_audit_trail\n * @param payload \n * @returns DailySalesSummaryRS\n */\n async summary(payload: SummaryOptions): Promise<DailySalesSummaryRS> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in summary({ pcc, ... })')\n \n const { pcc } = payload\n this.sabre.setAction(ActionsRQ.DAILY_SALES_REPORT)\n const xml = await this.sabre.post((headersPayload) => summaryRequest({ pcc, ...payload, ...headersPayload }))\n return parseXMLToDailySalesSummary(xml)\n }\n}","export class FaultError extends Error {\n constructor(message: string) {\n super(message); // (1)\n this.name = \"FaultError\"; // (2)\n };\n}\n","export class ErrorInResponse extends Error {\n constructor(message: string) {\n super(message); // (1)\n this.name = \"ErrorInResponse\"; // (2)\n };\n}\n","import { parseXML } from '../config/xml-parser.config';\nimport { SabreCommandResponseSuccess } from '../interfaces/sabre-command.interface';\n\nfunction parseXMLToSabreCommand(payload: string) {\n return parseXML<SabreCommandResponseSuccess>(payload).sabreCommandLLSRS\n} \n\nexport {parseXMLToSabreCommand}","/**\n * @param command\n * @returns \n */\nfunction sabreCommand (command: string): string {\n return `<SabreCommandLLSRQ xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\" ReturnHostCommand=\"true\" Version=\"2.0.0\"><Request Output=\"SCREEN\"><HostCommand>${command}</HostCommand></Request></SabreCommandLLSRQ>`;\n }\n \n export { sabreCommand }","import { getMonthName, MonthNumber } from './get-month-name-sabre.helper';\n\nexport function formatDateSabre(date: string): string {\n const dateSplit = date.split('-');\n const monthNumber = parseInt(dateSplit[1]);\n const numberValid = (monthNumber >= 1 && monthNumber <= 12);\n if (!numberValid) {\n throw new Error('Month is not valid:' + monthNumber); \n }\n const month: MonthNumber = monthNumber as MonthNumber;\n const year = dateSplit[0].slice(2,4);\n\n return dateSplit[2]+getMonthName(month) + year;\n}","\nimport { CurrencyConversionOptions } from \"../interfaces/currency-conversion-options.interface\";\nimport { formatDateSabre } from \"./format-date-sabre.helper\";\n\nexport function formatCurrencyCommand(options: CurrencyConversionOptions): string {\n const { from, to, date } = options;\n const dateFormatted = formatDateSabre(date);\n const command = `DC¥${from}1/${to}/${dateFormatted}`;\n return command;\n}","import { request } from \"../../common/helpers/request.helper\";\nimport { sabreCommand } from \"../../common/helpers/sabre-command.helper\";\nimport { ActionsRQ } from \"../../common/interfaces/actions.interface\";\nimport { formatCurrencyCommand } from \"../helpers/format-currency-command.helper\";\nimport { CurrencyOptions } from \"../requests/interfaces/currency-options.interface\";\n\n/**\n * {{header}}\n * \n * {{currencyRequest(options)}}\n * \n * {{footer}}\n * @param options CurrencyOptions\n * @returns string\n */\nfunction currencyRequest(options: CurrencyOptions): string {\n const { authorization, conversationId } = options;\n const body = sabreCommand(formatCurrencyCommand(options))\n return request({\n body,\n authorization,\n conversationId,\n action: ActionsRQ.SABRE_COMMAND\n })\n}\n\nexport { currencyRequest }\n","import { ActionsRQ } from \"../common/interfaces/actions.interface\";\nimport { SabreCommandLLSRS } from \"../common/interfaces/sabre-command.interface\";\nimport { parseXMLToSabreCommand } from \"../common/utils/parse-xml-to-sabre-command\";\nimport { Sabre } from \"../sabre\";\nimport { CurrencyConversionOptions } from \"./interfaces/currency-conversion-options.interface\";\nimport { currencyRequest } from \"./requests/currency.request\";\n\nexport class Currency {\n constructor(private readonly sabre: Sabre) {}\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/management/utility/Send_Sabre_Command\n * Sabre equivalent command -> DC¥USD1/MXN/19MAR25\n */\n async conversion(payload: CurrencyConversionOptions): Promise<SabreCommandLLSRS> {\n this.sabre.setAction(ActionsRQ.SABRE_COMMAND);\n const {from, to, date} = payload;\n const xml = await this.sabre.post((headersPayload) => currencyRequest({ from, to, date, ...headersPayload }))\n return parseXMLToSabreCommand(xml)\n }\n}","\nimport type { Actions, FetchRequestOptions, SabreOptions } from \"./interfaces\";\nimport { getSubString } from \"./common/utils/get-sub-string\";\nimport { baseUrl, conversationId, domain, userAgent } from \"./config\";\nimport type { PostOptions } from \"./common/interfaces/post-options.interface\";\nimport type { HeadersRequestOptions } from \"./common/interfaces/headers-request-options.interface\";\nimport { Authentication } from \"./authentication/authentication\";\nimport { Queue } from \"./queue/queue\";\nimport { DailySales } from \"./daily-sales/daily-sales\";\nimport type { SessionCreateOptions } from \"./authentication/requests/interfaces/session-create-options.interface\";\nimport { ActionsRQ } from \"./common/interfaces/actions.interface\";\nimport { ErrorInResponse, FaultError } from \"./common/utils\";\nimport { Currency } from \"./currency/currency\";\n\nexport class Sabre {\n private readonly headers: Headers;\n private readonly headersRequest: HeadersRequestOptions\n private lastReq: FetchRequestOptions | {} = {};\n\n readonly authentication = new Authentication(this)\n readonly queue = new Queue(this)\n readonly dailySales = new DailySales(this)\n readonly currency = new Currency(this)\n\n constructor(private readonly options: SabreOptions = {}) {\n const processEnv = typeof process !== 'undefined' && process.env\n if (!this.options.username && processEnv) \n this.options.username = processEnv.SABRE_USERNAME\n if (!this.options.password && processEnv)\n this.options.password = processEnv.SABRE_PASSWORD\n if (!this.options.organization && processEnv)\n this.options.organization = processEnv.SABRE_ORGANIZATION\n if (!this.options.token && processEnv)\n this.options.token = processEnv.SABRE_SESSION_TOKEN\n\n if (!this.options.username || !this.options.password || !this.options.organization) {\n if (!this.options.token) {\n throw new Error(`Pass it to the constructor new SabreLegacy({\n username: '773400', \n password: 'PASSWORD_GOES_HERE',\n organization: '7TZA', // pcc\n });})`)\n }\n }\n\n this.headers = new Headers({\n 'User-Agent': userAgent,\n 'Content-Type': 'text/xml; charset=\"utf-8\"',\n 'Content-Encoding': 'deflate',\n 'Authorization': this.options.token ? `Bearer ${this.options.token}` : '',\n });\n this.headersRequest = {\n conversationId, \n authorization: this.options.token || '',\n }\n }\n\n setAction(action: Actions) {\n this.headers.set('SOAPAction', action)\n }\n setAuthorization(token: string) {\n this.headersRequest.authorization = token;\n this.headers.set('Authorization', `Bearer ${token}`)\n }\n getAuthorization() {\n return this.headersRequest.authorization\n }\n\n getLastRequest() {\n return this.lastReq;\n }\n\n async fetchRequest(\n options: FetchRequestOptions | {} = {},\n ): Promise<string> {\n this.lastReq = options\n try {\n const response = await fetch(baseUrl, options);\n const xml = await response.text()\n \n if (!response.ok) {\n const fault = getSubString(xml, '<faultstring>', '</faultstring>', false)\n throw new FaultError(fault)\n }\n const body = getSubString(xml, '<soap-env:Body>', '</soap-env:Body>', false)\n const error = getSubString(body, '<stl:Error>', '</stl:Error>', false) \n if (error) {\n const message = getSubString(error, '<stl:Message>', '</stl:Message>', false)\n throw new ErrorInResponse(message)\n }\n const action = this.headers.get('SOAPAction')\n // AUTHORIZATION INTERNAL MANAGEMENT\n // Change authorization internal for the reason: token no exported - vie 14 de mar del 25\n if (action === ActionsRQ.SESSION_CREATE || action === ActionsRQ.TOKEN_CREATE) {\n const token = getSubString(xml, '<wsse:BinarySecurityToken valueType=\"String\" EncodingType=\"wsse:Base64Binary\">', '</wsse:BinarySecurityToken>', false);\n this.setAuthorization(token)\n } else if (action === ActionsRQ.SESSION_CLOSE) {\n this.headersRequest.authorization = '';\n this.headers.delete('Authorization')\n }\n \n return body;\n } catch (error) {\n if (error instanceof FaultError || error instanceof ErrorInResponse) {\n throw error;\n }\n throw error instanceof Error \n ? error \n : new Error('Unknown error');\n }\n }\n\n async post(handlerRequest: (payload: HeadersRequestOptions) => string, options: PostOptions = {}): Promise<string> {\n if (!this.headersRequest.authorization) throw new Error('Missing authorization. Set it in setAuthorization(\"TOKEN\")')\n const requestOptions = {\n method: 'POST',\n headers: this.headers,\n body: handlerRequest(this.headersRequest),\n ...options,\n };\n\n return this.fetchRequest(requestOptions);\n }\n\n async auth(handlerRequest:(payload: SessionCreateOptions) => string, options: PostOptions = {}): Promise<string> {\n if (!this.options.username || !this.options.password || !this.options.organization)\n throw new Error(`Missing SabreLegacy authorization. Pass it to the constructor new SabreLegacy({\n username: '773400', \n password: 'PASSWORD_GOES_HERE',\n organization: '7TZA', // pcc\n });})`)\n\n const requestOptions = {\n method: 'POST',\n headers: this.headers,\n body: handlerRequest({\n conversationId: conversationId,\n authorization: {\n username: this.options.username,\n password: this.options.password,\n pcc: this.options.organization,\n domain: domain\n }\n }),\n ...options,\n };\n\n return this.fetchRequest(requestOptions);\n }\n}"]}
package/dist/index.js CHANGED
@@ -1,45 +1,19 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- ErrorInResponse: () => ErrorInResponse,
24
- FaultError: () => FaultError,
25
- SabreLegacy: () => Sabre
26
- });
27
- module.exports = __toCommonJS(index_exports);
1
+ import { XMLParser, XMLBuilder } from 'fast-xml-parser';
28
2
 
29
3
  // src/common/utils/get-sub-string.ts
30
4
  function getSubString(strSearch, strBegin, strEnd, withEnd) {
31
5
  let strSub = "";
32
6
  const intBegin = strSearch.indexOf(strBegin);
33
7
  if (intBegin !== -1) {
34
- const startIndex = withEnd ? intBegin : intBegin + strBegin.length;
8
+ const startIndex = intBegin + strBegin.length;
35
9
  const endIndex = strSearch.indexOf(strEnd, startIndex);
36
- if (endIndex !== -1) strSub = strSearch.substring(startIndex, endIndex + (withEnd ? strEnd.length : 0));
10
+ if (endIndex !== -1) strSub = strSearch.substring(startIndex, endIndex + (0));
37
11
  }
38
12
  return strSub;
39
13
  }
40
14
 
41
15
  // package.json
42
- var version = "0.1.13";
16
+ var version = "0.1.14";
43
17
 
44
18
  // src/config.ts
45
19
  var defaultBaseUrl = "https://webservices.platform.sabre.com";
@@ -138,7 +112,7 @@ function tokenCreateRequest(payload) {
138
112
  return soapEnv({ header: header2, body });
139
113
  }
140
114
 
141
- // src/authentication/authentication..ts
115
+ // src/authentication/authentication.ts
142
116
  var Authentication = class {
143
117
  constructor(sabre) {
144
118
  this.sabre = sabre;
@@ -209,9 +183,6 @@ function findQueueLine(text) {
209
183
  const [_, workPcc, homePcc, agent, time, date, bookingId] = found;
210
184
  return { workPcc, homePcc, agent, dateTime: `20${date.slice(5)}-${formatMonth(date.slice(2, 5))}-${date.slice(0, 2)}T${time.slice(0, 2)}:${time.slice(2)}`, bookingId };
211
185
  }
212
-
213
- // src/common/config/xml-parser.config.ts
214
- var import_fast_xml_parser = require("fast-xml-parser");
215
186
  var options = {
216
187
  textNodeName: "content",
217
188
  attributeNamePrefix: "",
@@ -221,7 +192,7 @@ var options = {
221
192
  transformAttributeName: (attributeName) => attributeName[0].toLowerCase() + attributeName.slice(1)
222
193
  };
223
194
  var parseXML = (() => {
224
- const parser = new import_fast_xml_parser.XMLParser(options);
195
+ const parser = new XMLParser(options);
225
196
  return (xml) => parser.parse(xml);
226
197
  })();
227
198
 
@@ -354,11 +325,8 @@ function parseIdentifierOptionsToQueueIdentifier(payload) {
354
325
  }
355
326
  };
356
327
  }
357
-
358
- // src/queue/common/utils/builder-queue-identifier.ts
359
328
  function builderQueueIdentifier(payload) {
360
329
  const QueueIdentifierObj = parseIdentifierOptionsToQueueIdentifier(payload);
361
- const { XMLBuilder } = require("fast-xml-parser");
362
330
  const options2 = {
363
331
  ignoreAttributes: false,
364
332
  attributeNamePrefix: "$",
@@ -626,11 +594,8 @@ function parseSummaryOptionsToSelectionCriteria(payload) {
626
594
  } : void 0
627
595
  };
628
596
  }
629
-
630
- // src/daily-sales/common/utils/parse-summary-options-to-xml.ts
631
597
  function parseSummaryOptionsToXML(payload) {
632
598
  const SelectionCriteria = parseSummaryOptionsToSelectionCriteria(payload);
633
- const { XMLBuilder } = require("fast-xml-parser");
634
599
  const builder = new XMLBuilder();
635
600
  return builder.build({ SelectionCriteria });
636
601
  }
@@ -893,9 +858,7 @@ var Sabre = class {
893
858
  return this.fetchRequest(requestOptions);
894
859
  }
895
860
  };
896
- // Annotate the CommonJS export names for ESM import in node:
897
- 0 && (module.exports = {
898
- ErrorInResponse,
899
- FaultError,
900
- SabreLegacy
901
- });
861
+
862
+ export { ErrorInResponse, FaultError, Sabre as SabreLegacy };
863
+ //# sourceMappingURL=index.js.map
864
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/utils/get-sub-string.ts","../package.json","../src/config.ts","../src/common/helpers/binary-security-token.helper.ts","../src/common/helpers/message-header.helper.ts","../src/common/helpers/security.helper.ts","../src/common/helpers/header.helper.ts","../src/common/helpers/soap-env.helper.ts","../src/common/helpers/request.helper.ts","../src/authentication/requests/ping.request.ts","../src/authentication/helpers/username-token.helper.ts","../src/authentication/requests/session-create.request.ts","../src/authentication/requests/session-close.request.ts","../src/authentication/requests/token-create.request.ts","../src/authentication/authentication.ts","../src/currency/helpers/get-month-name-sabre.helper.ts","../src/queue/common/utils/find-queue-line.ts","../src/common/config/xml-parser.config.ts","../src/queue/common/utils/parse-xml-to-queue-access.ts","../src/queue/common/utils/parse-xml-to-queue-count.ts","../src/queue/common/utils/parse-xml-to-queue-place.ts","../src/queue/common/utils/parse-paragraph-to-warnings.ts","../src/queue/common/utils/parse-warnings-to-notifications.ts","../src/queue/common/utils/parse-access-rs-to-access.ts","../src/queue/common/utils/parse-place-rs-to-access.ts","../src/queue/common/utils/parse-xml-to-queue-access-list.ts","../src/queue/common/utils/get-queue-booking-info.ts","../src/queue/common/utils/parse-access-list-rs-to-list.ts","../src/queue/common/helpers/queue-access.helper.ts","../src/queue/common/utils/parse-identifier-options-to-queue-identifier.ts","../src/queue/common/utils/builder-queue-identifier.ts","../src/queue/common/requests/access-list.request.ts","../src/queue/common/requests/access.request.ts","../src/queue/common/helpers/queue-count.helper.ts","../src/queue/common/requests/count.request.ts","../src/queue/common/helpers/navigation-action.helper.ts","../src/queue/common/requests/exit.request.ts","../src/queue/common/requests/ignore.request.ts","../src/queue/common/helpers/queue-place.helper.ts","../src/queue/common/requests/place.request.ts","../src/queue/common/requests/remove.request.ts","../src/queue/queue.ts","../src/daily-sales/common/requests/report.request.ts","../src/daily-sales/common/utils/parse-summary-options-to-selection-criteria.ts","../src/daily-sales/common/utils/parse-summary-options-to-xml.ts","../src/daily-sales/common/requests/summary.request.ts","../src/daily-sales/common/utils/parse-xml-to-daily-sales-summary.ts","../src/daily-sales/common/utils/parse-xml-to-daily-sales-report.ts","../src/daily-sales/daily-sales.ts","../src/common/utils/fault-error.ts","../src/common/utils/error-in-response.ts","../src/common/utils/parse-xml-to-sabre-command.ts","../src/common/helpers/sabre-command.helper.ts","../src/currency/helpers/format-date-sabre.helper.ts","../src/currency/helpers/format-currency-command.helper.ts","../src/currency/requests/currency.request.ts","../src/currency/currency.ts","../src/sabre.ts"],"names":["conversationId","header","options","domain","ListMonth","queueAccess","queuePlace","XMLBuilder"],"mappings":"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","file":"index.js","sourcesContent":["export function getSubString (strSearch: string, strBegin: string, strEnd: string, withEnd: boolean): string {\n let strSub = ''\n const intBegin = strSearch.indexOf(strBegin)\n if (intBegin !== -1) {\n const startIndex = withEnd ? intBegin : intBegin + strBegin.length\n const endIndex = strSearch.indexOf(strEnd, startIndex)\n if (endIndex !== -1) strSub = strSearch.substring(startIndex, endIndex + (withEnd ? strEnd.length : 0))\n }\n return strSub\n}","{\n \"name\": \"sabre-legacy-client\",\n \"version\": \"0.1.14\",\n \"description\": \"Sabre Legacy Node.js SDK\",\n \"type\": \"module\",\n \"keywords\": [\n \"sabre\",\n \"legacy\",\n \"client\",\n \"soap\"\n ],\n \"homepage\": \"https://github.com/CarlosIvanSoto/sabre-legacy#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/CarlosIvanSoto/sabre-legacy/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/CarlosIvanSoto/sabre-legacy.git\"\n },\n \"license\": \"MIT\",\n \"author\": \"Carlos Ivan Soto <csoto_99@outlook.com>\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist/**\"\n ],\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"types\": \"./dist/index.d.ts\"\n }\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"link\": \"npm run build & npm link\",\n \"test\": \"jest\",\n \"test:watch\": \"jest --watch\",\n \"prepublish\": \"npm run build\",\n \"example:create-session\": \"node --env-file=.env --import=tsx examples/create-session.ts\",\n \"example:get-summary\": \"node --env-file=.env --import=tsx examples/get-summary.ts\",\n \"example:queue-count\": \"node --env-file=.env --import=tsx examples/queue-count.ts\",\n \"example:refresh-session\": \"node --env-file=.env --import=tsx examples/refresh-session.ts\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.39.2\",\n \"@types/jest\": \"^30.0.0\",\n \"@types/node\": \"^25.2.0\",\n \"eslint\": \"^9.39.2\",\n \"globals\": \"^17.3.0\",\n \"jest\": \"^30.2.0\",\n \"ts-jest\": \"^29.4.6\",\n \"ts-node\": \"^10.9.2\",\n \"tsup\": \"^8.5.1\",\n \"tsx\": \"^4.21.0\",\n \"typescript\": \"^5.9.3\",\n \"typescript-eslint\": \"^8.54.0\"\n },\n \"dependencies\": {\n \"fast-xml-parser\": \"^5.3.4\"\n }\n}\n","import { version } from '../package.json';\n\nconst defaultBaseUrl = 'https://webservices.platform.sabre.com';\nconst defaultUserAgent = `sabre-client-node:${version}`;\nconst defaultConversationId = `sabre.client.node:${version}`\nconst defaultDomain = 'AA'\n\nconst baseUrl =\n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_SOAP_URL || defaultBaseUrl\n : defaultBaseUrl;\n\nconst userAgent =\n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_USER_AGENT || defaultUserAgent\n : defaultUserAgent;\n\nconst domain =\n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_DOMAIN || defaultDomain\n : defaultDomain;\n\nconst conversationId = \n typeof process !== 'undefined' && process.env\n ? process.env.SABRE_CONVERSATION_ID || defaultConversationId\n : defaultConversationId\n\nexport { baseUrl, userAgent, domain, conversationId };","export function binarySecurityToken(token: string) {\n return `<BinarySecurityToken EncodingType=\"Base64Binary\" valueType=\"String\">${token}</BinarySecurityToken>`\n}","import { MessageHeaderOptions } from \"../interfaces/message-header-options.interface\";\n\n/**\n * <MessageHeader xmlns=\"http://www.ebxml.org/namespaces/messageHeader\">\n * <From>\n * <PartyId>{{from}}</PartyId>\n * </From>\n * <To>\n * <PartyId>{{to}}</PartyId>\n * </To>\n * <ConversationId>{{conversationId}}</ConversationId>\n * <Action>{{action}}</Action>\n * </MessageHeader>\n * @param payload \n * @returns string\n */\nfunction messageHeader(payload: MessageHeaderOptions) {\n const {\n from = 'Agency',\n to = 'SWS',\n conversationId = '2021.01.DevStudio',\n action,\n } = payload;\n return `<MessageHeader xmlns=\"http://www.ebxml.org/namespaces/messageHeader\"><From><PartyId>${from}</PartyId></From><To><PartyId>${to}</PartyId></To><ConversationId>${conversationId}</ConversationId><Action>${action}</Action></MessageHeader>`\n}\n\nexport { messageHeader }","/**\n * <Security xmlns=\"http://schemas.xmlsoap.org/ws/2002/12/secext\">\n * {{authorization}}\n * </Security>\n * @param authorization\n * @returns \n */\nfunction security (authorization: string): string {\n return `<Security xmlns=\"http://schemas.xmlsoap.org/ws/2002/12/secext\">${authorization}</Security>`\n}\n\nexport { security }","import { HeaderOptions } from \"../interfaces/header-options.interface\"\nimport { binarySecurityToken } from \"./binary-security-token.helper\"\nimport { messageHeader } from \"./message-header.helper\"\nimport { security } from \"./security.helper\"\n\n/**\n * \n * {{messageHeader({ action, conversationId }) + security(authorization)}}\n * \n * @param payload HeaderOptions\n * @returns string\n */\nfunction header (payload: HeaderOptions) {\n const { action, conversationId, authorization } = payload\n const binarySecurity = binarySecurityToken(authorization)\n return messageHeader({ action, conversationId }) + security(binarySecurity)\n}\nexport { header }","import { SoapEnvOptions } from \"../interfaces/soap-env-options.interface\"\n\n/**\n * <SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n * <SOAP-ENV:Header>\n * {{header}}\n * </SOAP-ENV:Header>\n * <SOAP-ENV:Body>\n * {{body}}\n * </SOAP-ENV:Body>\n * </SOAP-ENV:Envelope>\n * @param payload \n * @returns string\n */\nfunction soapEnv (payload: SoapEnvOptions) {\n const { header, body } = payload\n return `<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP-ENV:Header>${header}</SOAP-ENV:Header><SOAP-ENV:Body>${body}</SOAP-ENV:Body></SOAP-ENV:Envelope>`\n}\n\nexport { soapEnv }","import { RequestOptions } from \"../interfaces/request-options.interface\";\nimport { header } from \"./header.helper\";\nimport { soapEnv } from \"./soap-env.helper\";\n\n/**\n * {{header({ action, authorization })}}\n * \n * {{body}}\n * \n * {{footer}}\n * @param payload \n * @returns string\n */\nfunction request(payload: RequestOptions) {\n const { action, conversationId, authorization, body } = payload;\n return soapEnv({\n header: header({ action, conversationId, authorization }),\n body\n })\n}\n\nexport { request }","import { request } from \"../../common/helpers/request.helper\"\nimport { ActionsRQ } from \"../../common/interfaces/actions.interface\"\nimport { PingOptions } from \"./interfaces/ping-options.interface\"\n\n/**\n * {{header}}\n * \n * <OTA_PingRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2003/05\"/>\n * \n * {{footer}}\n * @param payload PingOptions\n * @returns string\n */\nfunction pingRequest(payload: PingOptions): string {\n const body = '<OTA_PingRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2003/05\"/>'\n return request({ body, action: ActionsRQ.PING, ...payload })\n}\n\nexport { pingRequest }","import { UsernameTokenOptions } from \"../requests/interfaces/username-token-options.interface\"\n/**\n * <UsernameToken>\n * <Username>{{username}}</Username>\n * <Password>{{password}}</Password>\n * <Organization>{{pcc}}</Organization>\n * <Domain>{{domain}}</Domain>\n * <ClientId>{{clientId}}</ClientId>\n * <ClientSecret>{{clientSecret}}</ClientSecret>\n * </UsernameToken>\n * @param options \n * @returns string\n */\nfunction usernameToken (options: UsernameTokenOptions): string {\n const { username, password, pcc, domain } = options\n return `<UsernameToken><Username>${username}</Username><Password>${password}</Password><Organization>${pcc}</Organization><Domain>${domain}</Domain></UsernameToken>`\n}\nexport { usernameToken }","import { ActionsRQ } from \"../../common/interfaces/actions.interface\"\nimport { messageHeader } from \"../../common/helpers/message-header.helper\"\nimport { security } from \"../../common/helpers/security.helper\"\nimport { soapEnv } from \"../../common/helpers/soap-env.helper\"\nimport { usernameToken } from \"../helpers/username-token.helper\"\nimport { SessionCreateOptions } from \"./interfaces/session-create-options.interface\"\n\n/**\n * {{header = message + security ( usernameToken )}}\n * \n * <SessionCreateRQ returnContextID=\"true\" Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>\n * \n * {{footer}}\n * @param payload SessionCreateOptions\n * @returns string\n */\nfunction sessionCreateRequest(payload: SessionCreateOptions): string {\n const { conversationId, authorization } = payload\n const message = messageHeader({\n action: ActionsRQ.SESSION_CREATE,\n conversationId: conversationId,\n to: 'Sabre_API',\n });\n const header = message + security(usernameToken(authorization))\n const body = '<SessionCreateRQ returnContextID=\"true\" Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>'\n return soapEnv({ header, body })\n}\n\nexport { sessionCreateRequest }","import { ActionsRQ } from './../../common/interfaces/actions.interface';\nimport { request } from \"../../common/helpers/request.helper\"\nimport { SessionCloseOptions } from \"./interfaces/session-close-options.interface\"\n\n/**\n * {{header}}\n * \n * <SessionCloseRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>\n * \n * {{footer}}\n * @param payload SessionCloseOptions \n * @returns string\n */\nfunction sessionCloseRequest (payload: SessionCloseOptions): string {\n const body = '<SessionCloseRQ Version=\"1.0.0\" xmlns=\"http://www.opentravel.org/OTA/2002/11\"/>'\n return request({ body, action: ActionsRQ.SESSION_CLOSE, ...payload })\n}\n\nexport { sessionCloseRequest }","import { ActionsRQ } from \"../../common/interfaces/actions.interface\"\nimport { messageHeader } from \"../../common/helpers/message-header.helper\"\nimport { security } from \"../../common/helpers/security.helper\"\nimport { soapEnv } from \"../../common/helpers/soap-env.helper\"\nimport { usernameToken } from \"../helpers/username-token.helper\"\nimport { TokenCreateOptions } from \"./interfaces/token-create-options.interface\"\n\n/**\n * {{header}}\n * \n * <TokenCreateRQ Version=\"1.0.0\" xmlns=\"http://webservices.sabre.com\"/>\n * \n * {{footer}}\n * @param payload TokenCreateOptions\n * @returns string\n */\nfunction tokenCreateRequest(payload: TokenCreateOptions): string {\n const { conversationId, authorization } = payload\n const message = messageHeader({\n action: ActionsRQ.TOKEN_CREATE,\n conversationId: conversationId,\n to: 'Sabre_API',\n });\n const header = message + security(usernameToken(authorization))\n const body = '<TokenCreateRQ Version=\"1.0.0\" xmlns=\"http://webservices.sabre.com\"/>'\n return soapEnv({ header, body })\n}\n\nexport { tokenCreateRequest }","import { Sabre } from \"../sabre\";\nimport { ActionsRQ } from \"../common/interfaces/actions.interface\";\nimport { pingRequest, sessionCloseRequest, sessionCreateRequest, tokenCreateRequest } from \"./requests\";\n\nexport class Authentication {\n constructor(private readonly sabre: Sabre) {}\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/create_session\n * @returns string\n */\n async sessionCreate(): Promise<string> {\n this.sabre.setAction(ActionsRQ.SESSION_CREATE);\n const xml = await this.sabre.auth(sessionCreateRequest);\n return xml\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/close_session\n * @returns string\n */\n async sessionClose(): Promise<string> {\n this.sabre.setAction(ActionsRQ.SESSION_CLOSE);\n const xml = await this.sabre.post(sessionCloseRequest);\n return xml\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/refresh_session\n * @returns string\n */\n async ping(): Promise<string> {\n this.sabre.setAction(ActionsRQ.PING);\n const xml = await this.sabre.post(pingRequest);\n return xml\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/session_management/create_access_token\n * @returns string\n */\n async tokenCreate(): Promise<string> {\n this.sabre.setAction(ActionsRQ.TOKEN_CREATE);\n const xml = await this.sabre.auth(tokenCreateRequest);\n return xml\n }\n}","export enum ListMonth {\n 'JAN' = 1,\n 'FEB',\n 'MAR',\n 'APR',\n 'MAY',\n 'JUN',\n 'JUL',\n 'AUG',\n 'SEP',\n 'OCT',\n 'NOV',\n 'DEC',\n}\nexport type MonthNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 \nexport type Month = keyof typeof ListMonth\nexport const getMonthName = (month: MonthNumber) => ListMonth[month];\nexport const formatMonth = (month: Month) => String(ListMonth[month]).padStart(2, '0');\n","import { formatMonth, Month } from \"../../../currency/helpers/get-month-name-sabre.helper\"\nimport { QueueLine } from \"./interfaces\"\n\nfunction findQueueLine(text?: string): QueueLine {\n if (!text) throw new Error('Missing text.')\n // example: 8AYC.8AYC*AGH 1341/29JUN24 YWDSRL H\n const LINE_REGEX = /(\\w{4})\\.(\\w{4})\\*(A{1}[A-Z0-9]{2})\\s(\\d{4})\\/(\\d{2}[A-Z]{3}\\d{2})\\s([A-Z0-9]{6})/g\n const found = LINE_REGEX.exec(text)\n if (!found) throw new Error('Queue line not found')\n const [_, workPcc, homePcc, agent, time, date, bookingId ] = found\n return { workPcc, homePcc, agent, dateTime: `20${date.slice(5)}-${formatMonth(date.slice(2,5) as Month)}-${date.slice(0,2)}T${time.slice(0,2)}:${time.slice(2)}`, bookingId }\n}\nexport { findQueueLine }","import { X2jOptions, XMLParser } from \"fast-xml-parser\";\n\nconst options: X2jOptions = {\n textNodeName: \"content\",\n attributeNamePrefix : \"\",\n removeNSPrefix: true,\n ignoreAttributes: [/^xmlns:/, /^eb:/, /^soap-env:/, /^xmlns/, /^Version/],\n transformTagName: (tagName) => tagName[0].toLowerCase() + tagName.slice(1),\n transformAttributeName: (attributeName) => attributeName[0].toLowerCase() + attributeName.slice(1)\n};\n\n// function parseXML<T>(xml: string): T {\n// return new XMLParser(options).parse(xml)\n// } \n// export { parseXML }\n\nexport const parseXML = (() => {\n const parser = new XMLParser(options);\n return <T>(xml: string):T => parser.parse(xml);\n})();\n","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { QueueAccessResponseSuccess, QueueAccessRS } from \"./interfaces/queue-access.interface\"\n\nfunction parseXMLToQueueAccess(body: string): QueueAccessRS {\n const { queueAccessRS } = parseXML<QueueAccessResponseSuccess>(body)\n return queueAccessRS\n}\n\nexport { parseXMLToQueueAccess }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { QueueCountResponseSuccess, QueueCountRS } from \"./interfaces/queue-count.interface\"\n\nfunction parseXMLToQueueCount(body: string): QueueCountRS {\n const { queueCountRS } = parseXML<QueueCountResponseSuccess>(body)\n return queueCountRS\n}\n\nexport { parseXMLToQueueCount }","import { parseXML } from \"../../../common/config/xml-parser.config\";\nimport { QueuePlaceResponseSuccess, QueuePlaceRS } from \"./interfaces\";\n\nfunction parseXMLToQueuePlace(body: string): QueuePlaceRS {\n return parseXML<QueuePlaceResponseSuccess>(body).queuePlaceRS\n}\n\nexport { parseXMLToQueuePlace }","import { Warning } from \"../interfaces\"\nimport { BookingText } from \"./interfaces\"\n\nfunction parseParagraphToWarnings(payload: BookingText): Array<Warning> {\n const LIMIT_NOTIFICATIONS = 5\n const WARNING_REGEX = /\\d{3}\\s{2}.+/g\n \n return payload.text\n .slice(0, LIMIT_NOTIFICATIONS)\n .filter(text => text.match(WARNING_REGEX))\n .map(warningInLine => {\n const [code, message] = warningInLine.split(' ')\n return { code, message }\n })\n}\nexport { parseParagraphToWarnings }","import { Notification } from \"../interfaces\"\nimport { parseWarningsNotificationsOptions } from \"./interfaces\"\n\nfunction parseWarningsToNotifications(payload: parseWarningsNotificationsOptions): Array<Notification> {\n return payload.warnings.map(warning => ({ queue: payload.queue, warning }))\n}\nexport { parseWarningsToNotifications }","import { QueueAccess, QueueAccessRS } from \"./interfaces\"\nimport { QueueContext } from \"./interfaces/queue-context.interface\"\nimport { parseParagraphToWarnings } from \"./parse-paragraph-to-warnings\"\nimport { parseWarningsToNotifications } from \"./parse-warnings-to-notifications\"\n\nfunction parseAccessResponseToAccess(\n context: QueueContext,\n accessResponse: QueueAccessRS\n): QueueAccess {\n if (!accessResponse.line?.uniqueID?.iD) {\n throw new Error(accessResponse.applicationResults.error?.systemSpecificResults?.message || 'Unknown error');\n }\n const { queueNumber: queue } = context\n const { paragraph, line } = accessResponse;\n const warnings = parseParagraphToWarnings(paragraph)\n const notifications = parseWarningsToNotifications({ queue, warnings })\n return { \n dateTime: line.dateTime,\n agent: line.pOS.source.agentSine,\n pcc: line.pOS.source.pseudoCityCode,\n bookingId: line.uniqueID.iD,\n notifications,\n paragraph,\n queue\n }\n}\nexport { parseAccessResponseToAccess }","import { findQueueLine } from \"./find-queue-line\";\nimport { QueueAccess, QueuePlaceRS } from \"./interfaces\"\nimport { QueueContext } from \"./interfaces/queue-context.interface\"\nimport { parseParagraphToWarnings } from \"./parse-paragraph-to-warnings\"\nimport { parseWarningsToNotifications } from \"./parse-warnings-to-notifications\"\n\nfunction parsePlaceResponseToAccess(\n context: QueueContext,\n placeResponse: QueuePlaceRS\n): QueueAccess {\n if (!placeResponse.text) {\n throw new Error(placeResponse.applicationResults.error?.systemSpecificResults?.message || 'Unknown error');\n }\n const { queueNumber: queue } = context\n const warnings = parseParagraphToWarnings(placeResponse)\n const notifications = parseWarningsToNotifications({ queue, warnings })\n const { dateTime, agent, homePcc, bookingId } = findQueueLine(placeResponse.text.pop())\n return { \n dateTime,\n agent,\n pcc: homePcc,\n bookingId,\n notifications,\n paragraph: placeResponse,\n queue\n }\n}\nexport { parsePlaceResponseToAccess }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { QueueAccessListResponseSuccess } from \"./interfaces/queue-access-list.interface\"\n\nfunction parseXMLToQueueAccessList(body: string) {\n const { queueAccessRS } = parseXML<QueueAccessListResponseSuccess>(body)\n return queueAccessRS\n}\n\nexport { parseXMLToQueueAccessList }","import { formatMonth, Month } from \"../../../currency/helpers/get-month-name-sabre.helper\"\nimport { QueueBookingInfo } from \"./interfaces\"\n\nfunction getQueueBookingInfo(text?: string): QueueBookingInfo {\n if (!text) throw new Error('Missing text.')\n // example: \"1 JGKGPN PLT MAM 15FEB25 2100 1QUIROZ ARREOLA\"\n const BOOKING_INFO_REGEX = /(\\d+)\\s+([A-Z0-9]{6})\\s+(\\w{3,})[\\s|\\/]+(\\w{3,})\\s+(\\d{2}[A-Z]{3}\\d{2})\\s+(\\d{4})\\s+[1](.+)/g\n const found = BOOKING_INFO_REGEX.exec(text)\n if (!found) throw new Error('Queue booking info not found')\n const [_, num, bookingId, pcc, agent, date, time, name ] = found\n return { num, bookingId, placeBy: `${pcc} ${agent}`, date: `20${date.slice(5)}-${formatMonth(date.slice(2,5) as Month)}-${date.slice(0,2)}T${time.slice(0,2)}:${time.slice(2)}`, name }\n}\nexport { getQueueBookingInfo }","import { getQueueBookingInfo } from \"./get-queue-booking-info\";\nimport { QueueAccessList, QueueAccessListRS } from \"./interfaces/queue-access-list.interface\";\nimport { QueueContext } from \"./interfaces/queue-context.interface\"\n\nfunction parseAccessListResponseToList(\n context: QueueContext,\n accessListResponse: QueueAccessListRS\n): QueueAccessList {\n if (!accessListResponse.applicationResults?.success) {\n throw new Error(accessListResponse.applicationResults.error?.systemSpecificResults?.message || 'Unknown error');\n }\n const { queueNumber: queue } = context\n const { paragraph, line } = accessListResponse;\n return { \n lines: line ? \n line.map(qall => ({ \n index: qall.number,\n dateTime: qall.dateTime,\n passengerName: qall.passengerName,\n agent: qall.pOS.source.agentSine,\n pcc: qall.pOS.source.pseudoCityCode,\n bookingId: qall.uniqueID.iD\n }))\n : undefined,\n list: paragraph.text.slice(2, -1).map(text => getQueueBookingInfo(text)),\n paragraph,\n queue\n }\n}\nexport { parseAccessListResponseToList }","/**\n * <QueueAccessRQ ReturnHostCommand=\"true\" Version=\"2.1.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">\n * {{queueInfo}}\n * </QueueAccessRQ>\n * @param queueInfo string\n * @returns string\n */\nfunction queueAccess(queueInfo: string): string {\n return `<QueueAccessRQ ReturnHostCommand=\"false\" Version=\"2.1.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">${queueInfo}</QueueAccessRQ>`\n}\nexport { queueAccess }","import { QueueIdentifierOptions } from \"../helpers/interfaces/queue-identifier-options.interface\"\n\nfunction parseIdentifierOptionsToQueueIdentifier(payload: QueueIdentifierOptions) {\n return {\n QueueIdentifier: {\n \"$Number\": payload.number,\n \"$PrefatoryInstructionCode\": payload.code,\n \"$PseudoCityCode\": payload.pcc,\n\n List: payload.ind \n ? {\n \"$Ind\": payload.ind,\n \"$PrimaryPassenger\": payload.primaryPassenger\n }\n : undefined\n }\n }\n}\n\nexport { parseIdentifierOptionsToQueueIdentifier }","import { QueueIdentifierOptions } from \"../helpers/interfaces/queue-identifier-options.interface\";\nimport { parseIdentifierOptionsToQueueIdentifier } from \"./parse-identifier-options-to-queue-identifier\";\nimport { XMLBuilder } from 'fast-xml-parser';\n/**\n * \n * <QueueIdentifier PseudoCityCode=\"{{pcc}}\"/>\n * or \n * <QueueIdentifier Number=\"{{number}}\" PseudoCityCode=\"{{pcc}}\"/>\n * or \n * <QueueIdentifier Number=\"{{number}}\" PseudoCityCode=\"{{pcc}}\"/>\n * or\n * <QueueIdentifier Number=\"{{number}}\" PrefatoryInstructionCode=\"{{code}}\" PseudoCityCode=\"{{pcc}}\">\n * <List Ind=\"true\" PrimaryPassenger=\"true\" />\n * </QueueIdentifier>\n * \n * @param options QueueIdentifierOptions\n * @returns string\n */\n\nfunction builderQueueIdentifier(payload: QueueIdentifierOptions): string {\n const QueueIdentifierObj = parseIdentifierOptionsToQueueIdentifier(payload)\n const options = {\n ignoreAttributes: false,\n attributeNamePrefix: \"$\",\n suppressBooleanAttributes: false,\n suppressEmptyNode: true\n }\n const builder = new XMLBuilder(options);\n return builder.build(QueueIdentifierObj);\n}\n\nexport { builderQueueIdentifier }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queueAccess } from \"../../common/helpers/queue-access.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { AccessListOptions } from \"./interfaces/access-list-options.interface\";\n\n/**\n * {{header}}\n * \n * {{queueAccess(queueInfo)}}\n * \n * {{footer}}\n * @param options AccessOptions\n * @returns string\n */\nfunction accessListRequest(options: AccessListOptions): string {\n const { pcc, number, authorization, conversationId, primaryPassenger } = options;\n const queueInfo = builderQueueIdentifier({ pcc, number, ind: true, primaryPassenger });\n const body = queueAccess(queueInfo);\n return request({\n body, authorization, conversationId, action: ActionsRQ.QUEUE_ACCESS\n })\n}\n\nexport { accessListRequest }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queueAccess } from \"../../common/helpers/queue-access.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { AccessOptions } from \"./interfaces/access-options.interface\";\n\n/**\n * {{header}}\n * \n * {{queueAccess(queueInfo)}}\n * \n * {{footer}}\n * @param options AccessOptions\n * @returns string\n */\nfunction accessRequest(options: AccessOptions): string {\n const { pcc, number, authorization, conversationId } = options;\n const queueInfo = builderQueueIdentifier({ pcc, number });\n const body = queueAccess(queueInfo);\n return request({\n body, authorization, conversationId, action: ActionsRQ.QUEUE_ACCESS\n })\n}\n\nexport { accessRequest }","/**\n * <QueueCountRQ xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\" ReturnHostCommand=\"true\" Version=\"2.2.1\">\n * <QueueInfo>{{queueInfo}}</QueueInfo>\n * </QueueCountRQ>\n * \n * @param queueInfo string\n * @returns string\n */\nfunction queueCount(queueInfo: string): string {\n return `<QueueCountRQ xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\" ReturnHostCommand=\"false\" Version=\"2.2.1\"><QueueInfo>${queueInfo}</QueueInfo></QueueCountRQ>`\n}\n\nexport { queueCount }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queueCount } from \"../../common/helpers/queue-count.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { CountOptions } from \"./interfaces/count-options.interface\";\n\n/**\n * {{header}}\n * \n * {{queueCount(queueInfo)}}\n * \n * {{footer}}\n * @param options QueueCountOptions\n * @returns string\n */\nfunction countRequest(options: CountOptions): string {\n const { authorization, conversationId, pcc } = options;\n const queueInfo = builderQueueIdentifier({ pcc });\n const body = queueCount(queueInfo)\n return request({ \n body,\n authorization,\n conversationId,\n action: ActionsRQ.QUEUE_COUNT\n })\n}\nexport { countRequest }","import { NavigationAction } from \"./interfaces/navigation-actions.interface\";\nimport { queueAccess } from \"./queue-access.helper\"\n\nfunction navigationAction(action: NavigationAction): string {\n const queueInfo = `<Navigation Action=\"${action}\"/>`;\n const body = queueAccess(queueInfo);\n return body\n}\nexport { navigationAction }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { navigationAction } from \"../../common/helpers/navigation-action.helper\"\nimport { ExitOptions } from \"./interfaces/exit-options.interface\";\nimport { NavigationAction } from \"../../common/helpers/interfaces/navigation-actions.interface\"\n\n/**\n * {{header}}\n * \n * {{navigationAction(action)}}\n * \n * {{footer}}\n * @param options ExitOptions\n * @returns string\n */\nfunction exitRequest(options: ExitOptions): string {\n const { authorization, conversationId } = options \n const body = navigationAction(NavigationAction.EXIT);\n return request({ authorization, conversationId, body, action: ActionsRQ.QUEUE_ACCESS })\n}\n\nexport { exitRequest }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { navigationAction } from \"../../common/helpers/navigation-action.helper\"\nimport { IgnoreOptions } from \"./interfaces/ignore-options.interface\";\nimport { NavigationAction } from \"../../common/helpers/interfaces/navigation-actions.interface\"\n\n/**\n * {{header}}\n * \n * {{navigationAction(action)}}\n * \n * {{footer}}\n * @param options IgnoreOptions\n * @returns string\n */\nfunction ignoreRequest(options: IgnoreOptions): string {\n const { authorization, conversationId } = options \n const body = navigationAction(NavigationAction.IGNORE);\n return request({ authorization, conversationId, body, action: ActionsRQ.QUEUE_ACCESS })\n}\n\nexport { ignoreRequest }","\n/**\n * <QueuePlaceRQ ReturnHostCommand=\"true\" Version=\"2.0.4\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">\n * <QueueInfo>{{queueInfo}}</QueueInfo>\n * </QueuePlaceRQ>\n * \n * @param queueInfo string\n * @returns string\n */\nfunction queuePlace(queueInfo: string): string {\n return `<QueuePlaceRQ ReturnHostCommand=\"false\" Version=\"2.0.4\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\"><QueueInfo>${queueInfo}</QueueInfo></QueuePlaceRQ>`\n}\nexport { queuePlace }","\nimport { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { queuePlace } from \"../helpers/queue-place.helper\";\nimport { builderQueueIdentifier } from \"../utils/builder-queue-identifier\";\nimport { PlaceOptions } from \"./interfaces/place-options.inferface\"\n\n/**\n * {{header}}\n * \n * {{queuePlace(queueInfo)}}\n * \n * {{footer}}\n * @param options PlaceOptions\n * @returns string\n */\nfunction placeRequest(options: PlaceOptions): string {\n const { number, pcc, authorization, conversationId } = options; \n const queueInfo = builderQueueIdentifier({ number, code: '11', pcc });\n const body = queuePlace(queueInfo);\n return request({ body, authorization, conversationId, action: ActionsRQ.QUEUE_PLACE })\n}\n\nexport { placeRequest }","import { request } from \"../../../common/helpers/request.helper\";\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\";\nimport { navigationAction } from \"../../common/helpers/navigation-action.helper\"\nimport { NavigationAction } from \"../../common/helpers/interfaces/navigation-actions.interface\"\nimport { RemoveOptions } from \"./interfaces/remove-options.interface\";\n\n/**\n * {{header}}\n * \n * {{navigationAction(action)}}\n * \n * {{footer}}\n * @param options RemoveOptions\n * @returns string\n */\nfunction removeRequest(options: RemoveOptions): string {\n const { authorization, conversationId } = options \n const body = navigationAction(NavigationAction.IGNORE);\n return request({ authorization, conversationId, body, action: ActionsRQ.QUEUE_ACCESS })\n}\n\nexport { removeRequest }","import { parseXMLToQueueCount, parseXMLToQueueAccess, parseXMLToQueuePlace, parseXMLToQueueAccessList, parseAccessListResponseToList, parseAccessResponseToAccess, parsePlaceResponseToAccess } from \"./common/utils\";\nimport { QueueAccessListOptions, QueueAccessListResponse, QueueAccessOptions, QueueAccessResponse, QueueCountResponse, QueueExitResponse, QueueIgnoreResponse, QueuePlaceOptions, QueuePlaceResponse, QueueRemoveResponse } from \"./interfaces\";\nimport { countRequest, accessRequest, ignoreRequest, removeRequest, exitRequest, placeRequest, accessListRequest } from \"./common/requests\";\nimport { ActionsRQ, ActionsRS } from \"../common/interfaces/actions.interface\";\nimport { Sabre } from \"../sabre\";\n\nexport class Queue {\n private readonly meta = {\n queue: '',\n }\n constructor(private readonly sabre: Sabre) { }\n\n /**\n * List Queues\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Get_Queue_Count\n * @param pcc string\n * @returns QueueCountResponse\n */\n async count(pcc?: string): Promise<QueueCountResponse> {\n if (!pcc) {\n if (typeof process !== 'undefined' && process.env) {\n pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!pcc) throw new Error('Missing pcc. Set it in count(\"PCC\")')\n\n this.sabre.setAction(ActionsRQ.QUEUE_COUNT)\n const xml = await this.sabre.post((opts) => countRequest({\n pcc, ...opts\n }))\n return parseXMLToQueueCount(xml)\n }\n\n /**\n * Access queue \n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @param payload QueueAccessOptions\n * @returns QueueAccessResponse\n */\n async access(payload: QueueAccessOptions): Promise<QueueAccessResponse> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in access({ pcc, number })')\n const { number, pcc } = payload\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post((opts) => accessRequest({\n number, pcc, ...opts\n }))\n this.meta.queue = number\n const queueAccess = parseXMLToQueueAccess(xml)\n return parseAccessResponseToAccess({ queueNumber: this.meta.queue }, queueAccess)\n }\n /**\n * Get PNR list from queue (Stateless)\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @param payload QueueAccessListOptions\n * @returns QueueAccessListResponse\n */\n async accessList(payload: QueueAccessListOptions): Promise<QueueAccessListResponse> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in access({ pcc, number })')\n const { number, pcc, primaryPassenger } = payload\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post((opts) => accessListRequest({\n number, pcc, primaryPassenger, ...opts\n }))\n const queueAccessList = parseXMLToQueueAccessList(xml)\n return parseAccessListResponseToList({ queueNumber: number }, queueAccessList)\n }\n\n /**\n * Ignore PNR & Next\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @returns QueueIgnoreResponse\n */\n async ignore(): Promise<QueueIgnoreResponse> {\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post(ignoreRequest)\n const queueAccess = parseXMLToQueueAccess(xml)\n return parseAccessResponseToAccess({ queueNumber: this.meta.queue }, queueAccess)\n }\n\n /**\n * Remove PNR & Next\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @returns QueueRemoveResponse\n */\n async remove(): Promise<QueueRemoveResponse> {\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post(removeRequest)\n const queueAccess = parseXMLToQueueAccess(xml)\n return parseAccessResponseToAccess({ queueNumber: this.meta.queue }, queueAccess)\n }\n\n /**\n * Ignore PNR & Exit\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Access_Queue\n * @returns QueueExitResponse\n */\n async exit(): Promise<QueueExitResponse> {\n this.sabre.setAction(ActionsRS.QUEUE_ACCESS)\n const xml = await this.sabre.post(exitRequest)\n const queueAccess = parseXMLToQueueAccess(xml)\n if (queueAccess.applicationResults.error) {\n throw new Error(queueAccess.applicationResults.error?.systemSpecificResults?.message);\n }\n return {\n paragraph: queueAccess.paragraph,\n }\n }\n\n /**\n * Queue Place \"Stateful Single Queue\"\n * \n * See https://developer.sabre.com/docs/soap_apis/management/queue/Place_Queue_Message\n * @param payload QueuePlaceOptions\n * @returns QueuePlaceResponse\n */\n async place(payload: QueuePlaceOptions): Promise<QueuePlaceResponse> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in place({ pcc, number })')\n const { number, pcc } = payload\n this.sabre.setAction(ActionsRQ.QUEUE_PLACE)\n const xml = await this.sabre.post((opts) => placeRequest({\n number, pcc, ...opts\n }))\n const queuePlace = parseXMLToQueuePlace(xml)\n return parsePlaceResponseToAccess({ queueNumber: this.meta.queue }, queuePlace)\n }\n}","\nimport { request } from \"../../../common/helpers/request.helper\"\nimport { ActionsRQ } from \"../../../common/interfaces\"\nimport { ReportRequestOptions } from \"./interfaces/report-options.interface\"\n\n/**\n * <DailySalesReportRQ ReturnHostCommand=\"false\" Version=\"2.0.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\">\n * <SalesReport PseudoCityCode=\"{{pcc_tkt}}\" StartDate=\"{{date}}\"/>\n * </DailySalesReportRQ>\n * @param options ReportOptions\n * @returns string\n */\nfunction reportRequest(options: ReportRequestOptions): string {\n const { pcc, date, authorization, conversationId } = options\n const body = `<DailySalesReportRQ ReturnHostCommand=\"false\" Version=\"2.0.0\" xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\"><SalesReport PseudoCityCode=\"${pcc}\" StartDate=\"${date}\"/></DailySalesReportRQ>`\n return request({\n body, action: ActionsRQ.DAILY_SALES_REPORT, authorization, conversationId\n })\n}\n\nexport { reportRequest }","import { SummaryOptions } from \"../requests/interfaces/summary-options.interface\";\nimport { SelectionCriteria } from \"../interfaces\";\n\nfunction parseSummaryOptionsToSelectionCriteria(payload: SummaryOptions): SelectionCriteria {\n return {\n PseudoCityCode: payload.pcc,\n ReportDate: payload.date,\n DocumentNumber: payload.documentNumber,\n SettlementType: payload.settlementType,\n DocumentType: payload.documentType,\n Airline: payload.airline?.code || payload.airline?.number\n ? {\n AirlineCode: payload.airline.code,\n AirlineNumber: payload.airline.number\n }\n : undefined\n }\n}\nexport { parseSummaryOptionsToSelectionCriteria }","import { SummaryOptions } from \"../requests/interfaces/summary-options.interface\";\nimport { parseSummaryOptionsToSelectionCriteria } from \"./parse-summary-options-to-selection-criteria\";\nimport { XMLBuilder } from 'fast-xml-parser';\n\nfunction parseSummaryOptionsToXML(payload: SummaryOptions): string {\n const SelectionCriteria = parseSummaryOptionsToSelectionCriteria(payload)\n const builder = new XMLBuilder();\n return builder.build({ SelectionCriteria });\n}\n\nexport { parseSummaryOptionsToXML }","import { request } from \"../../../common/helpers/request.helper\"\nimport { ActionsRQ } from \"../../../common/interfaces/actions.interface\"\nimport { parseSummaryOptionsToXML } from \"../utils/parse-summary-options-to-xml\"\nimport { SummaryRequestOptions } from \"./interfaces/summary-options.interface\"\n\n/**\n * <DailySalesSummaryRQ version=\"1.2.2\" xmlns=\"http://www.sabre.com/ns/Ticketing/AsrServices/1.0\">\n * <Header/>\n * <SelectionCriteria>\n * <PseudoCityCode>{{pccTkt}}</PseudoCityCode>\n * <ReportDate>{{date}}</ReportDate>\n * </SelectionCriteria>\n * </DailySalesSummaryRQ>\n * \n * @param options SummaryOptions\n * @returns string\n */\nfunction summaryRequest(options: SummaryRequestOptions): string {\n const { authorization, conversationId, ...summaryOptions } = options\n const selectionCriteria = parseSummaryOptionsToXML(summaryOptions)\n const body = `<DailySalesSummaryRQ version=\"1.2.2\" xmlns=\"http://www.sabre.com/ns/Ticketing/AsrServices/1.0\"><Header/>${selectionCriteria}</DailySalesSummaryRQ>`\n return request({\n body, action: ActionsRQ.AGENCY_REPORT, authorization, conversationId\n })\n}\n\nexport { summaryRequest }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { DailySalesSummaryResponseSuccess } from \"../../interfaces/daily-sales-summary-options.interface\"\n\nfunction parseXMLToDailySalesSummary(payload: string) {\n return parseXML<DailySalesSummaryResponseSuccess>(payload).dailySalesSummaryRS\n}\n\nexport { parseXMLToDailySalesSummary }","import { parseXML } from \"../../../common/config/xml-parser.config\"\nimport { DailySalesReportResponseSuccess } from \"../../interfaces/daily-sales-report-options.interface\"\n\nfunction parseXMLToDailySalesReport(payload: string) {\n return parseXML<DailySalesReportResponseSuccess>(payload).dailySalesReportRS\n}\n\nexport { parseXMLToDailySalesReport }","import { Sabre } from \"../sabre\";\nimport { ActionsRQ } from \"../common/interfaces/actions.interface\";\nimport { reportRequest } from \"./common/requests/report.request\";\nimport { summaryRequest } from \"./common/requests/summary.request\";\nimport { parseXMLToDailySalesSummary } from \"./common/utils/parse-xml-to-daily-sales-summary\";\nimport { parseXMLToDailySalesReport } from \"./common/utils/parse-xml-to-daily-sales-report\";\nimport { DailySalesReportRS, ReportOptions } from \"./interfaces/daily-sales-report-options.interface\";\nimport { DailySalesSummaryRS, SummaryOptions } from \"./interfaces/daily-sales-summary-options.interface\";\n\nexport class DailySales {\n constructor(private readonly sabre: Sabre) {}\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/air/fulfill/Get_Sales_Reports\n * @param payload ReportOptions\n * @returns DailySalesReportRS\n */\n async report(payload: ReportOptions): Promise<DailySalesReportRS> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in report({ pcc, number })')\n\n const { pcc, date } = payload\n this.sabre.setAction(ActionsRQ.DAILY_SALES_REPORT)\n const xml = await this.sabre.post((headersPayload) => reportRequest({ pcc, date, ...headersPayload }))\n return parseXMLToDailySalesReport(xml)\n }\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/air/fulfill/display_audit_trail\n * @param payload \n * @returns DailySalesSummaryRS\n */\n async summary(payload: SummaryOptions): Promise<DailySalesSummaryRS> {\n if (!payload.pcc) {\n if (typeof process !== 'undefined' && process.env) {\n payload.pcc = process.env.SABRE_ORGANIZATION;\n }\n }\n if (!payload.pcc) throw new Error('Missing pcc. Set it in summary({ pcc, ... })')\n \n const { pcc } = payload\n this.sabre.setAction(ActionsRQ.DAILY_SALES_REPORT)\n const xml = await this.sabre.post((headersPayload) => summaryRequest({ pcc, ...payload, ...headersPayload }))\n return parseXMLToDailySalesSummary(xml)\n }\n}","export class FaultError extends Error {\n constructor(message: string) {\n super(message); // (1)\n this.name = \"FaultError\"; // (2)\n };\n}\n","export class ErrorInResponse extends Error {\n constructor(message: string) {\n super(message); // (1)\n this.name = \"ErrorInResponse\"; // (2)\n };\n}\n","import { parseXML } from '../config/xml-parser.config';\nimport { SabreCommandResponseSuccess } from '../interfaces/sabre-command.interface';\n\nfunction parseXMLToSabreCommand(payload: string) {\n return parseXML<SabreCommandResponseSuccess>(payload).sabreCommandLLSRS\n} \n\nexport {parseXMLToSabreCommand}","/**\n * @param command\n * @returns \n */\nfunction sabreCommand (command: string): string {\n return `<SabreCommandLLSRQ xmlns=\"http://webservices.sabre.com/sabreXML/2011/10\" ReturnHostCommand=\"true\" Version=\"2.0.0\"><Request Output=\"SCREEN\"><HostCommand>${command}</HostCommand></Request></SabreCommandLLSRQ>`;\n }\n \n export { sabreCommand }","import { getMonthName, MonthNumber } from './get-month-name-sabre.helper';\n\nexport function formatDateSabre(date: string): string {\n const dateSplit = date.split('-');\n const monthNumber = parseInt(dateSplit[1]);\n const numberValid = (monthNumber >= 1 && monthNumber <= 12);\n if (!numberValid) {\n throw new Error('Month is not valid:' + monthNumber); \n }\n const month: MonthNumber = monthNumber as MonthNumber;\n const year = dateSplit[0].slice(2,4);\n\n return dateSplit[2]+getMonthName(month) + year;\n}","\nimport { CurrencyConversionOptions } from \"../interfaces/currency-conversion-options.interface\";\nimport { formatDateSabre } from \"./format-date-sabre.helper\";\n\nexport function formatCurrencyCommand(options: CurrencyConversionOptions): string {\n const { from, to, date } = options;\n const dateFormatted = formatDateSabre(date);\n const command = `DC¥${from}1/${to}/${dateFormatted}`;\n return command;\n}","import { request } from \"../../common/helpers/request.helper\";\nimport { sabreCommand } from \"../../common/helpers/sabre-command.helper\";\nimport { ActionsRQ } from \"../../common/interfaces/actions.interface\";\nimport { formatCurrencyCommand } from \"../helpers/format-currency-command.helper\";\nimport { CurrencyOptions } from \"../requests/interfaces/currency-options.interface\";\n\n/**\n * {{header}}\n * \n * {{currencyRequest(options)}}\n * \n * {{footer}}\n * @param options CurrencyOptions\n * @returns string\n */\nfunction currencyRequest(options: CurrencyOptions): string {\n const { authorization, conversationId } = options;\n const body = sabreCommand(formatCurrencyCommand(options))\n return request({\n body,\n authorization,\n conversationId,\n action: ActionsRQ.SABRE_COMMAND\n })\n}\n\nexport { currencyRequest }\n","import { ActionsRQ } from \"../common/interfaces/actions.interface\";\nimport { SabreCommandLLSRS } from \"../common/interfaces/sabre-command.interface\";\nimport { parseXMLToSabreCommand } from \"../common/utils/parse-xml-to-sabre-command\";\nimport { Sabre } from \"../sabre\";\nimport { CurrencyConversionOptions } from \"./interfaces/currency-conversion-options.interface\";\nimport { currencyRequest } from \"./requests/currency.request\";\n\nexport class Currency {\n constructor(private readonly sabre: Sabre) {}\n\n /**\n * See https://developer.sabre.com/docs/soap_apis/management/utility/Send_Sabre_Command\n * Sabre equivalent command -> DC¥USD1/MXN/19MAR25\n */\n async conversion(payload: CurrencyConversionOptions): Promise<SabreCommandLLSRS> {\n this.sabre.setAction(ActionsRQ.SABRE_COMMAND);\n const {from, to, date} = payload;\n const xml = await this.sabre.post((headersPayload) => currencyRequest({ from, to, date, ...headersPayload }))\n return parseXMLToSabreCommand(xml)\n }\n}","\nimport type { Actions, FetchRequestOptions, SabreOptions } from \"./interfaces\";\nimport { getSubString } from \"./common/utils/get-sub-string\";\nimport { baseUrl, conversationId, domain, userAgent } from \"./config\";\nimport type { PostOptions } from \"./common/interfaces/post-options.interface\";\nimport type { HeadersRequestOptions } from \"./common/interfaces/headers-request-options.interface\";\nimport { Authentication } from \"./authentication/authentication\";\nimport { Queue } from \"./queue/queue\";\nimport { DailySales } from \"./daily-sales/daily-sales\";\nimport type { SessionCreateOptions } from \"./authentication/requests/interfaces/session-create-options.interface\";\nimport { ActionsRQ } from \"./common/interfaces/actions.interface\";\nimport { ErrorInResponse, FaultError } from \"./common/utils\";\nimport { Currency } from \"./currency/currency\";\n\nexport class Sabre {\n private readonly headers: Headers;\n private readonly headersRequest: HeadersRequestOptions\n private lastReq: FetchRequestOptions | {} = {};\n\n readonly authentication = new Authentication(this)\n readonly queue = new Queue(this)\n readonly dailySales = new DailySales(this)\n readonly currency = new Currency(this)\n\n constructor(private readonly options: SabreOptions = {}) {\n const processEnv = typeof process !== 'undefined' && process.env\n if (!this.options.username && processEnv) \n this.options.username = processEnv.SABRE_USERNAME\n if (!this.options.password && processEnv)\n this.options.password = processEnv.SABRE_PASSWORD\n if (!this.options.organization && processEnv)\n this.options.organization = processEnv.SABRE_ORGANIZATION\n if (!this.options.token && processEnv)\n this.options.token = processEnv.SABRE_SESSION_TOKEN\n\n if (!this.options.username || !this.options.password || !this.options.organization) {\n if (!this.options.token) {\n throw new Error(`Pass it to the constructor new SabreLegacy({\n username: '773400', \n password: 'PASSWORD_GOES_HERE',\n organization: '7TZA', // pcc\n });})`)\n }\n }\n\n this.headers = new Headers({\n 'User-Agent': userAgent,\n 'Content-Type': 'text/xml; charset=\"utf-8\"',\n 'Content-Encoding': 'deflate',\n 'Authorization': this.options.token ? `Bearer ${this.options.token}` : '',\n });\n this.headersRequest = {\n conversationId, \n authorization: this.options.token || '',\n }\n }\n\n setAction(action: Actions) {\n this.headers.set('SOAPAction', action)\n }\n setAuthorization(token: string) {\n this.headersRequest.authorization = token;\n this.headers.set('Authorization', `Bearer ${token}`)\n }\n getAuthorization() {\n return this.headersRequest.authorization\n }\n\n getLastRequest() {\n return this.lastReq;\n }\n\n async fetchRequest(\n options: FetchRequestOptions | {} = {},\n ): Promise<string> {\n this.lastReq = options\n try {\n const response = await fetch(baseUrl, options);\n const xml = await response.text()\n \n if (!response.ok) {\n const fault = getSubString(xml, '<faultstring>', '</faultstring>', false)\n throw new FaultError(fault)\n }\n const body = getSubString(xml, '<soap-env:Body>', '</soap-env:Body>', false)\n const error = getSubString(body, '<stl:Error>', '</stl:Error>', false) \n if (error) {\n const message = getSubString(error, '<stl:Message>', '</stl:Message>', false)\n throw new ErrorInResponse(message)\n }\n const action = this.headers.get('SOAPAction')\n // AUTHORIZATION INTERNAL MANAGEMENT\n // Change authorization internal for the reason: token no exported - vie 14 de mar del 25\n if (action === ActionsRQ.SESSION_CREATE || action === ActionsRQ.TOKEN_CREATE) {\n const token = getSubString(xml, '<wsse:BinarySecurityToken valueType=\"String\" EncodingType=\"wsse:Base64Binary\">', '</wsse:BinarySecurityToken>', false);\n this.setAuthorization(token)\n } else if (action === ActionsRQ.SESSION_CLOSE) {\n this.headersRequest.authorization = '';\n this.headers.delete('Authorization')\n }\n \n return body;\n } catch (error) {\n if (error instanceof FaultError || error instanceof ErrorInResponse) {\n throw error;\n }\n throw error instanceof Error \n ? error \n : new Error('Unknown error');\n }\n }\n\n async post(handlerRequest: (payload: HeadersRequestOptions) => string, options: PostOptions = {}): Promise<string> {\n if (!this.headersRequest.authorization) throw new Error('Missing authorization. Set it in setAuthorization(\"TOKEN\")')\n const requestOptions = {\n method: 'POST',\n headers: this.headers,\n body: handlerRequest(this.headersRequest),\n ...options,\n };\n\n return this.fetchRequest(requestOptions);\n }\n\n async auth(handlerRequest:(payload: SessionCreateOptions) => string, options: PostOptions = {}): Promise<string> {\n if (!this.options.username || !this.options.password || !this.options.organization)\n throw new Error(`Missing SabreLegacy authorization. Pass it to the constructor new SabreLegacy({\n username: '773400', \n password: 'PASSWORD_GOES_HERE',\n organization: '7TZA', // pcc\n });})`)\n\n const requestOptions = {\n method: 'POST',\n headers: this.headers,\n body: handlerRequest({\n conversationId: conversationId,\n authorization: {\n username: this.options.username,\n password: this.options.password,\n pcc: this.options.organization,\n domain: domain\n }\n }),\n ...options,\n };\n\n return this.fetchRequest(requestOptions);\n }\n}"]}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "sabre-legacy-client",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "Sabre Legacy Node.js SDK",
5
+ "type": "module",
5
6
  "keywords": [
6
7
  "sabre",
7
8
  "legacy",
@@ -18,37 +19,34 @@
18
19
  },
19
20
  "license": "MIT",
20
21
  "author": "Carlos Ivan Soto <csoto_99@outlook.com>",
21
- "main": "./dist/index.js",
22
- "module": "./dist/index.mjs",
22
+ "main": "./dist/index.cjs",
23
+ "module": "./dist/index.js",
23
24
  "types": "./dist/index.d.ts",
24
25
  "files": [
25
26
  "dist/**"
26
27
  ],
27
28
  "exports": {
28
29
  ".": {
29
- "import": {
30
- "types": "./dist/index.d.ts",
31
- "default": "./dist/index.mjs"
32
- },
33
- "require": {
34
- "types": "./dist/index.d.ts",
35
- "default": "./dist/index.js"
36
- }
30
+ "import": "./dist/index.js",
31
+ "require": "./dist/index.cjs",
32
+ "types": "./dist/index.d.ts"
37
33
  }
38
34
  },
39
35
  "scripts": {
40
- "build": "tsup src/index.ts --format esm,cjs --dts",
36
+ "build": "tsup",
41
37
  "link": "npm run build & npm link",
42
38
  "test": "jest",
43
39
  "test:watch": "jest --watch",
44
40
  "prepublish": "npm run build",
45
41
  "example:create-session": "node --env-file=.env --import=tsx examples/create-session.ts",
46
- "example:get-summary": "node --env-file=.env --import=tsx examples/get-summary.ts"
42
+ "example:get-summary": "node --env-file=.env --import=tsx examples/get-summary.ts",
43
+ "example:queue-count": "node --env-file=.env --import=tsx examples/queue-count.ts",
44
+ "example:refresh-session": "node --env-file=.env --import=tsx examples/refresh-session.ts"
47
45
  },
48
46
  "devDependencies": {
49
47
  "@eslint/js": "^9.39.2",
50
48
  "@types/jest": "^30.0.0",
51
- "@types/node": "^25.1.0",
49
+ "@types/node": "^25.2.0",
52
50
  "eslint": "^9.39.2",
53
51
  "globals": "^17.3.0",
54
52
  "jest": "^30.2.0",
File without changes