@vrplatform/api 1.2.31 → 1.2.33

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.
Files changed (38) hide show
  1. package/build/main/fetcher.d.ts +18 -0
  2. package/build/main/fetcher.js +68 -0
  3. package/build/main/fetcher.js.map +1 -0
  4. package/build/main/generated/v1.d.ts +12334 -11416
  5. package/build/main/generated/v1.js.map +1 -1
  6. package/build/main/headers.d.ts +18 -0
  7. package/build/main/headers.js +25 -0
  8. package/build/main/headers.js.map +1 -0
  9. package/build/main/ingest-compat/index.d.ts +1 -2
  10. package/build/main/ingest-compat/index.js.map +1 -1
  11. package/build/main/ingest-compat/map.js.map +1 -1
  12. package/build/main/ingest-compat/types.d.ts +4 -12
  13. package/build/main/ingest-compat/types.js.map +1 -1
  14. package/build/main/retryable-errors.d.ts +9 -0
  15. package/build/main/retryable-errors.js +38 -0
  16. package/build/main/retryable-errors.js.map +1 -0
  17. package/build/module/fetcher.d.ts +18 -0
  18. package/build/module/fetcher.js +63 -0
  19. package/build/module/fetcher.js.map +1 -0
  20. package/build/module/generated/v1.d.ts +12334 -11416
  21. package/build/module/generated/v1.js.map +1 -1
  22. package/build/module/headers.d.ts +18 -0
  23. package/build/module/headers.js +23 -0
  24. package/build/module/headers.js.map +1 -0
  25. package/build/module/ingest-compat/index.d.ts +1 -2
  26. package/build/module/ingest-compat/index.js +1 -1
  27. package/build/module/ingest-compat/index.js.map +1 -1
  28. package/build/module/ingest-compat/map.js.map +1 -1
  29. package/build/module/ingest-compat/types.d.ts +4 -12
  30. package/build/module/ingest-compat/types.js.map +1 -1
  31. package/build/module/retryable-errors.d.ts +9 -0
  32. package/build/module/retryable-errors.js +34 -0
  33. package/build/module/retryable-errors.js.map +1 -0
  34. package/package.json +1 -5
  35. package/src/generated/v1.ts +12334 -11416
  36. package/src/ingest-compat/index.ts +7 -2
  37. package/src/ingest-compat/map.ts +10 -10
  38. package/src/ingest-compat/types.ts +4 -66
@@ -0,0 +1,18 @@
1
+ import type { HeadersOptions } from 'openapi-fetch';
2
+ import type { CacheResult } from './cache';
3
+ import type { ApiClientAuth } from './types';
4
+ export type HeaderInject = ReturnType<typeof injectHeaders>;
5
+ export declare function injectHeaders(
6
+ head: Headers,
7
+ {
8
+ auth,
9
+ headers,
10
+ sessionId,
11
+ cache,
12
+ }: {
13
+ auth?: ApiClientAuth | (() => ApiClientAuth);
14
+ headers?: HeadersOptions | (() => HeadersOptions);
15
+ sessionId: string;
16
+ cache: CacheResult<string, string>;
17
+ }
18
+ ): Promise<void>;
@@ -0,0 +1,23 @@
1
+ export async function injectHeaders(head, { auth, headers, sessionId, cache }) {
2
+ const temporary = new Headers(
3
+ typeof headers === 'function' ? headers() : headers
4
+ );
5
+ const a = (typeof auth === 'function' ? auth() : auth) || {};
6
+ if (sessionId) temporary.set('X-Session-Id', sessionId);
7
+ if (a.sec) temporary.set('X-Api-Key', `Sec ${await cache.current(a.sec)}`);
8
+ if (a.apiKey) temporary.set('X-Api-Key', a.apiKey);
9
+ if (a.tenantId) temporary.set('X-Team-Id', a.tenantId);
10
+ if (a.accessToken)
11
+ temporary.set(
12
+ 'Authorization',
13
+ a.accessToken.startsWith('Bearer ')
14
+ ? a.accessToken
15
+ : `Bearer ${a.accessToken}`
16
+ );
17
+ temporary.forEach((value, key) => {
18
+ if (!head.has(key)) {
19
+ head.set(key, value);
20
+ }
21
+ });
22
+ }
23
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"src/","sources":["headers.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAa,EACb,EACE,IAAI,EACJ,OAAO,EACP,SAAS,EACT,KAAK,GAMN;IAED,MAAM,SAAS,GAAG,IAAI,OAAO,CAC3B,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAE,OAAe,CAC7D,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,SAAS;QAAE,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,GAAG;QAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,MAAM;QAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,QAAQ;QAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,WAAW;QACf,SAAS,CAAC,GAAG,CACX,eAAe,EACf,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;YACjC,CAAC,CAAC,CAAC,CAAC,WAAW;YACf,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAC9B,CAAC;IACJ,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { HeadersOptions } from 'openapi-fetch';\nimport type { CacheResult } from './cache';\nimport type { ApiClientAuth } from './types';\n\nexport type HeaderInject = ReturnType<typeof injectHeaders>;\nexport async function injectHeaders(\n head: Headers,\n {\n auth,\n headers,\n sessionId,\n cache,\n }: {\n auth?: ApiClientAuth | (() => ApiClientAuth);\n headers?: HeadersOptions | (() => HeadersOptions);\n sessionId: string;\n cache: CacheResult<string, string>;\n }\n) {\n const temporary = new Headers(\n typeof headers === 'function' ? headers() : (headers as any)\n );\n const a = (typeof auth === 'function' ? auth() : auth) || {};\n if (sessionId) temporary.set('X-Session-Id', sessionId);\n if (a.sec) temporary.set('X-Api-Key', `Sec ${await cache.current(a.sec)}`);\n if (a.apiKey) temporary.set('X-Api-Key', a.apiKey);\n if (a.tenantId) temporary.set('X-Team-Id', a.tenantId);\n if (a.accessToken)\n temporary.set(\n 'Authorization',\n a.accessToken.startsWith('Bearer ')\n ? a.accessToken\n : `Bearer ${a.accessToken}`\n );\n temporary.forEach((value, key) => {\n if (!head.has(key)) {\n head.set(key, value);\n }\n });\n}\n"]}
@@ -1,5 +1,4 @@
1
- import { type PartialBy } from '../ingest';
2
- import type { IngestArg, IngestFnArg, Source } from '../ingest/types';
1
+ import { type IngestArg, type IngestFnArg, type PartialBy, type Source } from '../ingest';
3
2
  import type { ApiClient } from '../types';
4
3
  import type { ListingInput, PaymentInput, ReservationInput } from './types';
5
4
  export * from './map';
@@ -1,4 +1,4 @@
1
- import { usePostSources } from '../ingest';
1
+ import { usePostSources, } from '../ingest';
2
2
  import { mapTransform } from './map';
3
3
  export * from './map';
4
4
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["ingest-compat/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { type PartialBy, usePostSources } from '../ingest';\nimport type { IngestArg, IngestFnArg, Source } from '../ingest/types';\nimport type { ApiClient } from '../types';\nimport { mapTransform } from './map';\nimport type { ListingInput, PaymentInput, ReservationInput } from './types';\n\nexport * from './map';\nexport * from './types';\n\nexport type ApiIngestCompat = ReturnType<typeof useIngestCompat>;\nexport function useIngestCompat(api: ApiClient, config: IngestArg) {\n const post = usePostSources(api, config);\n return {\n api,\n get sessionId() {\n return api.sessionId;\n },\n async sources(changes: Source[], configOverwrites?: IngestFnArg) {\n if (!changes.length) return undefined;\n return await post(changes, configOverwrites);\n },\n async reservations(\n changes: PartialBy<Source<ReservationInput>, 'type'>[],\n configOverwrites?: IngestFnArg\n ) {\n if (!changes.length) return [];\n return await post<ReservationInput>(\n changes.map(({ transform, ...source }) => {\n const data = mapTransform.reservation(transform.data);\n return {\n ...source,\n type: source.type || 'reservation',\n description: source.description || data.confirmationCode,\n uniqueRef: source.uniqueRef || data.uniqueRef!,\n date: source.date || data.bookedAt,\n status: source.status || 'active',\n transform: {\n data,\n type: 'reservation',\n },\n };\n }),\n configOverwrites\n );\n },\n async payments(\n changes: PartialBy<Source<PaymentInput>, 'type'>[],\n configOverwrites?: IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<PaymentInput>(\n changes.map(({ transform, ...source }) => {\n const data = mapTransform.payment(transform.data);\n return {\n ...source,\n type: source.type || 'payment',\n description: source.description || data.description,\n uniqueRef: source.uniqueRef || data.uniqueRef!,\n date: source.date || data.paidAt,\n status: source.status || 'active',\n transform: {\n data,\n type: 'payment',\n },\n };\n }),\n configOverwrites\n );\n },\n async listings(\n changes: PartialBy<Source<ListingInput>, 'type'>[],\n configOverwrites?: IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<ListingInput>(\n changes.map(({ transform, ...source }) => {\n const data = mapTransform.listing(transform.data);\n return {\n ...source,\n type: source.type || 'listing',\n description: source.description || data.name,\n uniqueRef: source.uniqueRef || data.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data,\n type: 'listing',\n },\n };\n }),\n configOverwrites\n );\n },\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["ingest-compat/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type IngestArg,\n type IngestFnArg,\n type PartialBy,\n type Source,\n usePostSources,\n} from '../ingest';\nimport type { ApiClient } from '../types';\nimport { mapTransform } from './map';\nimport type { ListingInput, PaymentInput, ReservationInput } from './types';\n\nexport * from './map';\nexport * from './types';\n\nexport type ApiIngestCompat = ReturnType<typeof useIngestCompat>;\nexport function useIngestCompat(api: ApiClient, config: IngestArg) {\n const post = usePostSources(api, config);\n return {\n api,\n get sessionId() {\n return api.sessionId;\n },\n async sources(changes: Source[], configOverwrites?: IngestFnArg) {\n if (!changes.length) return undefined;\n return await post(changes, configOverwrites);\n },\n async reservations(\n changes: PartialBy<Source<ReservationInput>, 'type'>[],\n configOverwrites?: IngestFnArg\n ) {\n if (!changes.length) return [];\n return await post<ReservationInput>(\n changes.map(({ transform, ...source }) => {\n const data = mapTransform.reservation(transform.data);\n return {\n ...source,\n type: source.type || 'reservation',\n description: source.description || data.confirmationCode,\n uniqueRef: source.uniqueRef || data.uniqueRef!,\n date: source.date || data.bookedAt,\n status: source.status || 'active',\n transform: {\n data,\n type: 'reservation',\n },\n };\n }),\n configOverwrites\n );\n },\n async payments(\n changes: PartialBy<Source<PaymentInput>, 'type'>[],\n configOverwrites?: IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<PaymentInput>(\n changes.map(({ transform, ...source }) => {\n const data = mapTransform.payment(transform.data);\n return {\n ...source,\n type: source.type || 'payment',\n description: source.description || data.description,\n uniqueRef: source.uniqueRef || data.uniqueRef!,\n date: source.date || data.paidAt,\n status: source.status || 'active',\n transform: {\n data,\n type: 'payment',\n },\n };\n }),\n configOverwrites\n );\n },\n async listings(\n changes: PartialBy<Source<ListingInput>, 'type'>[],\n configOverwrites?: IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<ListingInput>(\n changes.map(({ transform, ...source }) => {\n const data = mapTransform.listing(transform.data);\n return {\n ...source,\n type: source.type || 'listing',\n description: source.description || data.name,\n uniqueRef: source.uniqueRef || data.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data,\n type: 'listing',\n },\n };\n }),\n configOverwrites\n );\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"src/","sources":["ingest-compat/map.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RequestBody } from '../types';\nimport type {\n ListingInput,\n ListingOutput,\n PaymentInput,\n PaymentOutput,\n ReservationInput,\n ReservationOutput,\n} from './types';\n\nexport const mapTransform = {\n reservation: ({\n id,\n uniqueRef,\n cancelledAt,\n status,\n listingConnectionId,\n listingConnectionRef,\n guestName,\n checkIn,\n checkOut,\n metadata,\n currency,\n bookedAt,\n bookingPlatform,\n pmsReferenceCode,\n bookerName,\n guests,\n confirmationCode,\n paymentLines,\n centTotal: _,\n nights: __,\n sourceId: ___,\n }: ReservationInput): ReservationOutput => ({\n id,\n uniqueRef,\n cancelledAt,\n status: status === 'inactive' ? null : status,\n listingId:\n listingConnectionId?.toString() || listingConnectionRef?.toString(),\n guestName,\n checkIn,\n checkOut,\n metadata,\n currency,\n bookedAt,\n bookingPlatform,\n pmsReferenceCode,\n bookerName,\n guests,\n confirmationCode,\n lines:\n paymentLines?.map<\n RequestBody<'post:/reservations/batch'>['data'][0]['lines'][0]\n >((line) => ({\n type: line.type2!,\n amount: line.centTotal || 0,\n uniqueRef: line.uniqueRef,\n description: line.description,\n metadata: line.metadata,\n })) || [],\n }),\n payment: ({\n currency,\n description,\n uniqueRef,\n payedAt,\n etaAt,\n metadata,\n lines,\n }: PaymentInput): PaymentOutput => ({\n uniqueRef,\n metadata,\n currency,\n paidAt: payedAt,\n etaAt,\n description: description ?? 'Payment',\n lines:\n lines?.map<RequestBody<'post:/payments/batch'>['data'][0]['lines'][0]>(\n (line) => ({\n type: line.type2!,\n amount: line.centTotal || 0,\n uniqueRef: line.uniqueRef,\n description: line.description,\n metadata: line.metadata,\n })\n ) || [],\n }),\n listing: (item: ListingInput): ListingOutput => {\n let status =\n item.status === 'disabled'\n ? 'inactive'\n : item.status === 'enabled'\n ? 'active'\n : item.status;\n if (!item.status && item.pmsStatus) {\n status =\n item.pmsStatus === 'disabled' || item.pmsStatus === 'inactive'\n ? 'inactive'\n : item.pmsStatus === 'enabled' || item.pmsStatus === 'active'\n ? 'active'\n : null;\n }\n return {\n name: `${item.name}`,\n status: status || 'active',\n uniqueRef: item.uniqueRef,\n defaultCurrency: item.defaultCurrency,\n };\n },\n};\n"]}
1
+ {"version":3,"file":"map.js","sourceRoot":"src/","sources":["ingest-compat/map.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,WAAW,EAAE,CAAC,EACZ,EAAE,EACF,SAAS,EACT,WAAW,EACX,MAAM,EACN,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,EAAE,EACV,QAAQ,EAAE,GAAG,GACI,EAAqB,EAAE,CAAC,CAAC;QAC1C,EAAE;QACF,SAAS;QACT,WAAW;QACX,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAC7C,SAAS,EACP,mBAAmB,EAAE,QAAQ,EAAE,IAAI,oBAAoB,EAAE,QAAQ,EAAE;QACrE,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,eAAe;QACf,gBAAgB;QAChB,UAAU;QACV,MAAM;QACN,gBAAgB;QAChB,KAAK,EACF,YAAsB,EAAE,GAAG,CAE1B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,KAAM;YACjB,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC,IAAI,EAAE;KACZ,CAAC;IACF,OAAO,EAAE,CAAC,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GACQ,EAAiB,EAAE,CAAC,CAAC;QAClC,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,KAAK;QACL,WAAW,EAAE,WAAW,IAAI,SAAS;QACrC,KAAK,EACF,KAAe,EAAE,GAAG,CAEnB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,KAAM;YACjB,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC,IAAI,EAAE;KACZ,CAAC;IACF,OAAO,EAAE,CAAC,IAAkB,EAAiB,EAAE;QAC7C,IAAI,MAAM,GACR,IAAI,CAAC,MAAM,KAAK,UAAU;YACxB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM;gBACJ,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU;oBAC5D,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;wBAC3D,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,IAAI,CAAC;QACf,CAAC;QACD,OAAO;YACL,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,MAAM,IAAI,QAAQ;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;IACJ,CAAC;CACF,CAAC","sourcesContent":["import type { RequestBody } from '../types';\nimport type {\n ListingInput,\n ListingOutput,\n PaymentInput,\n PaymentOutput,\n ReservationInput,\n ReservationOutput,\n} from './types';\n\nexport const mapTransform = {\n reservation: ({\n id,\n uniqueRef,\n cancelledAt,\n status,\n listingConnectionId,\n listingConnectionRef,\n guestName,\n checkIn,\n checkOut,\n metadata,\n currency,\n bookedAt,\n bookingPlatform,\n pmsReferenceCode,\n bookerName,\n guests,\n confirmationCode,\n paymentLines,\n centTotal: _,\n nights: __,\n sourceId: ___,\n }: ReservationInput): ReservationOutput => ({\n id,\n uniqueRef,\n cancelledAt,\n status: status === 'inactive' ? null : status,\n listingId:\n listingConnectionId?.toString() || listingConnectionRef?.toString(),\n guestName,\n checkIn,\n checkOut,\n metadata,\n currency,\n bookedAt,\n bookingPlatform,\n pmsReferenceCode,\n bookerName,\n guests,\n confirmationCode,\n lines:\n (paymentLines as any[])?.map<\n RequestBody<'post:/reservations/batch'>['data'][0]['lines'][0]\n >((line) => ({\n type: line.type2!,\n amount: line.centTotal || 0,\n uniqueRef: line.uniqueRef,\n description: line.description,\n metadata: line.metadata,\n })) || [],\n }),\n payment: ({\n currency,\n description,\n uniqueRef,\n payedAt,\n etaAt,\n metadata,\n lines,\n }: PaymentInput): PaymentOutput => ({\n uniqueRef,\n metadata,\n currency,\n paidAt: payedAt,\n etaAt,\n description: description ?? 'Payment',\n lines:\n (lines as any[])?.map<\n RequestBody<'post:/payments/batch'>['data'][0]['lines'][0]\n >((line) => ({\n type: line.type2!,\n amount: line.centTotal || 0,\n uniqueRef: line.uniqueRef,\n description: line.description,\n metadata: line.metadata,\n })) || [],\n }),\n listing: (item: ListingInput): ListingOutput => {\n let status =\n item.status === 'disabled'\n ? 'inactive'\n : item.status === 'enabled'\n ? 'active'\n : item.status;\n if (!item.status && item.pmsStatus) {\n status =\n item.pmsStatus === 'disabled' || item.pmsStatus === 'inactive'\n ? 'inactive'\n : item.pmsStatus === 'enabled' || item.pmsStatus === 'active'\n ? 'active'\n : null;\n }\n return {\n name: `${item.name}`,\n status: status || 'active',\n uniqueRef: item.uniqueRef,\n defaultCurrency: item.defaultCurrency,\n };\n },\n};\n"]}
@@ -1,16 +1,8 @@
1
- import type { currency_enum, listing_insert_input, payment_insert_input, payment_line_insert_input, reservation_insert_input } from '@finalytic/graphql';
2
1
  import type { RequestBody } from '../types';
3
- export type PaymentLine = Pick<payment_line_insert_input, 'description' | 'type' | 'type2' | 'uniqueRef' | 'uniqueRef2' | 'metadata' | 'centTotal' | 'originCentTotal' | 'originCurrency' | 'originExchangeRate' | 'reservationId'>;
4
- export type ReservationInput = Pick<reservation_insert_input, 'id' | 'uniqueRef' | 'status' | 'nights' | 'guests' | 'bookedAt' | 'checkIn' | 'cancelledAt' | 'checkOut' | 'currency' | 'bookingPlatform' | 'bookerName' | 'guestName' | 'centTotal' | 'metadata' | 'sourceId' | 'pmsReferenceCode' | 'listingConnectionId'> & {
5
- confirmationCode: string;
6
- listingConnectionRef?: string | number;
7
- paymentLines?: PaymentLine[];
8
- };
2
+ export type PaymentLine = Record<string, any>;
3
+ export type ReservationInput = Record<string, any>;
9
4
  export type ReservationOutput = RequestBody<'post:/reservations/batch'>['data'][0];
10
- export type PaymentInput = Pick<payment_insert_input, 'id' | 'centTotal' | 'etaAt' | 'payedAt' | 'tenantId' | 'status' | 'description' | 'metadata' | 'uniqueRef' | 'bankAccountDigits'> & {
11
- currency: currency_enum;
12
- lines?: PaymentLine[];
13
- };
5
+ export type PaymentInput = Record<string, any>;
14
6
  export type PaymentOutput = RequestBody<'post:/payments/batch'>['data'][0];
15
- export type ListingInput = Omit<listing_insert_input, 'source' | 'addressRelation'>;
7
+ export type ListingInput = Record<string, any>;
16
8
  export type ListingOutput = RequestBody<'post:/listings/batch'>['data'][0];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"src/","sources":["ingest-compat/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n currency_enum,\n listing_insert_input,\n payment_insert_input,\n payment_line_insert_input,\n reservation_insert_input,\n} from '@finalytic/graphql';\nimport type { RequestBody } from '../types';\n\nexport type PaymentLine = Pick<\n payment_line_insert_input,\n | 'description'\n | 'type'\n | 'type2'\n | 'uniqueRef'\n | 'uniqueRef2'\n | 'metadata'\n | 'centTotal'\n | 'originCentTotal'\n | 'originCurrency'\n | 'originExchangeRate'\n | 'reservationId'\n>;\n\nexport type ReservationInput = Pick<\n reservation_insert_input,\n | 'id'\n | 'uniqueRef'\n | 'status'\n | 'nights'\n | 'guests'\n | 'bookedAt'\n | 'checkIn'\n | 'cancelledAt'\n | 'checkOut'\n | 'currency'\n | 'bookingPlatform'\n | 'bookerName'\n | 'guestName'\n | 'centTotal'\n | 'metadata'\n | 'sourceId'\n | 'pmsReferenceCode'\n | 'listingConnectionId'\n> & {\n confirmationCode: string;\n listingConnectionRef?: string | number;\n paymentLines?: PaymentLine[];\n};\nexport type ReservationOutput =\n RequestBody<'post:/reservations/batch'>['data'][0];\nexport type PaymentInput = Pick<\n payment_insert_input,\n | 'id'\n | 'centTotal'\n | 'etaAt'\n | 'payedAt'\n | 'tenantId'\n | 'status'\n | 'description'\n | 'metadata'\n | 'uniqueRef'\n | 'bankAccountDigits'\n> & {\n currency: currency_enum;\n lines?: PaymentLine[];\n};\nexport type PaymentOutput = RequestBody<'post:/payments/batch'>['data'][0];\nexport type ListingInput = Omit<\n listing_insert_input,\n 'source' | 'addressRelation'\n>;\nexport type ListingOutput = RequestBody<'post:/listings/batch'>['data'][0];\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"src/","sources":["ingest-compat/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { RequestBody } from '../types';\n\nexport type PaymentLine = Record<string, any>;\n\nexport type ReservationInput = Record<string, any>;\nexport type ReservationOutput =\n RequestBody<'post:/reservations/batch'>['data'][0];\nexport type PaymentInput = Record<string, any>;\nexport type PaymentOutput = RequestBody<'post:/payments/batch'>['data'][0];\nexport type ListingInput = Record<string, any>;\nexport type ListingOutput = RequestBody<'post:/listings/batch'>['data'][0];\n"]}
@@ -0,0 +1,9 @@
1
+ export declare function isRetryableError(error: Error): boolean;
2
+ export declare class RetryableError extends Error {
3
+ readonly retryAfterMs?: number | undefined;
4
+ constructor(message: string, retryAfterMs?: number | undefined);
5
+ }
6
+ export declare function assertRetryableResponse(
7
+ status: number,
8
+ retryAfterMs?: number
9
+ ): void;
@@ -0,0 +1,34 @@
1
+ // Add helper to check if an error is retryable
2
+ export function isRetryableError(error) {
3
+ // Network errors, connection timeouts, and other temporary issues
4
+ if (error instanceof RetryableError) return true;
5
+ const lowerCaseMessage = error.message?.toLowerCase() || '';
6
+ return (
7
+ lowerCaseMessage.includes('network connection lost') ||
8
+ lowerCaseMessage.includes('failed to fetch') ||
9
+ lowerCaseMessage.includes('network request failed') ||
10
+ lowerCaseMessage.includes('timeout') ||
11
+ lowerCaseMessage.includes('fetch failed') ||
12
+ lowerCaseMessage.includes('econnrefused') ||
13
+ lowerCaseMessage.includes('econnreset')
14
+ );
15
+ }
16
+ export class RetryableError extends Error {
17
+ retryAfterMs;
18
+ constructor(message, retryAfterMs) {
19
+ super(message);
20
+ this.retryAfterMs = retryAfterMs;
21
+ }
22
+ }
23
+ // Status codes that should trigger a retry
24
+ const RETRYABLE_STATUS_CODES = new Set([408, 429, 500, 502, 503, 504, 520]);
25
+ export function assertRetryableResponse(status, retryAfterMs) {
26
+ if (RETRYABLE_STATUS_CODES.has(status) || typeof retryAfterMs === 'number') {
27
+ // Throw an error that will be caught by the catch block below
28
+ throw new RetryableError(
29
+ `Retryable HTTP status code: ${status}`,
30
+ retryAfterMs
31
+ );
32
+ }
33
+ }
34
+ //# sourceMappingURL=retryable-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryable-errors.js","sourceRoot":"src/","sources":["retryable-errors.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,kEAAkE;IAClE,IAAI,KAAK,YAAY,cAAc;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC5D,OAAO,CACL,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACpD,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC5C,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACnD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC;QACzC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC;QACzC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CACxC,CAAC;AACJ,CAAC;AACD,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGrB;IAFlB,YACE,OAAe,EACC,YAAqB;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,iBAAY,GAAZ,YAAY,CAAS;IAGvC,CAAC;CACF;AAED,2CAA2C;AAC3C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5E,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,YAAqB;IAC3E,IAAI,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC3E,8DAA8D;QAC9D,MAAM,IAAI,cAAc,CACtB,+BAA+B,MAAM,EAAE,EACvC,YAAY,CACb,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["// Add helper to check if an error is retryable\nexport function isRetryableError(error: Error): boolean {\n // Network errors, connection timeouts, and other temporary issues\n if (error instanceof RetryableError) return true;\n const lowerCaseMessage = error.message?.toLowerCase() || '';\n return (\n lowerCaseMessage.includes('network connection lost') ||\n lowerCaseMessage.includes('failed to fetch') ||\n lowerCaseMessage.includes('network request failed') ||\n lowerCaseMessage.includes('timeout') ||\n lowerCaseMessage.includes('fetch failed') ||\n lowerCaseMessage.includes('econnrefused') ||\n lowerCaseMessage.includes('econnreset')\n );\n}\nexport class RetryableError extends Error {\n constructor(\n message: string,\n public readonly retryAfterMs?: number\n ) {\n super(message);\n }\n}\n\n// Status codes that should trigger a retry\nconst RETRYABLE_STATUS_CODES = new Set([408, 429, 500, 502, 503, 504, 520]);\n\nexport function assertRetryableResponse(status: number, retryAfterMs?: number) {\n if (RETRYABLE_STATUS_CODES.has(status) || typeof retryAfterMs === 'number') {\n // Throw an error that will be caught by the catch block below\n throw new RetryableError(\n `Retryable HTTP status code: ${status}`,\n retryAfterMs\n );\n }\n}\n"]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.2.31",
6
+ "version": "1.2.33",
7
7
  "description": "",
8
8
  "main": "build/main/index.js",
9
9
  "module": "build/module/index.js",
@@ -13,11 +13,7 @@
13
13
  "openapi-fetch": "0.14.0",
14
14
  "openapi-typescript": "^7.9.1"
15
15
  },
16
- "devDependencies": {
17
- "@finalytic/graphql": "*"
18
- },
19
16
  "peerDependencies": {
20
- "@finalytic/graphql": "*",
21
17
  "@finalytic/utils": "^4.9.45",
22
18
  "@sentry/core": "*"
23
19
  },