@vrplatform/api 1.2.33 → 1.2.34

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 (90) hide show
  1. package/build/main/client.d.ts +1 -1
  2. package/build/main/client.js +1 -1
  3. package/build/main/client.js.map +1 -1
  4. package/build/main/error.js +1 -1
  5. package/build/main/error.js.map +1 -1
  6. package/build/main/generated/openapi-fetch.d.ts +1 -1
  7. package/build/main/generated/openapi-fetch.js.map +1 -1
  8. package/build/main/generated/v1.d.ts +10139 -9185
  9. package/build/main/generated/v1.js.map +1 -1
  10. package/build/main/index.d.ts +4 -3
  11. package/build/main/index.js +0 -3
  12. package/build/main/index.js.map +1 -1
  13. package/build/main/ingest/index.d.ts +0 -2
  14. package/build/main/ingest/index.js.map +1 -1
  15. package/build/main/ingest/types.d.ts +1 -1
  16. package/build/main/ingest/types.js.map +1 -1
  17. package/build/main/ingest-compat/index.d.ts +0 -1
  18. package/build/main/ingest-compat/index.js.map +1 -1
  19. package/build/main/ingest-compat/types.d.ts +0 -1
  20. package/build/main/ingest-compat/types.js.map +1 -1
  21. package/build/main/tsconfig.main.tsbuildinfo +1 -1
  22. package/build/main/types.d.ts +0 -1
  23. package/build/main/types.js.map +1 -1
  24. package/build/module/client.d.ts +1 -1
  25. package/build/module/client.js +1 -1
  26. package/build/module/client.js.map +1 -1
  27. package/build/module/error.js +1 -1
  28. package/build/module/error.js.map +1 -1
  29. package/build/module/generated/openapi-fetch.d.ts +1 -1
  30. package/build/module/generated/openapi-fetch.js.map +1 -1
  31. package/build/module/generated/v1.d.ts +10139 -9185
  32. package/build/module/generated/v1.js.map +1 -1
  33. package/build/module/index.d.ts +4 -3
  34. package/build/module/index.js +0 -3
  35. package/build/module/index.js.map +1 -1
  36. package/build/module/ingest/index.d.ts +0 -2
  37. package/build/module/ingest/index.js.map +1 -1
  38. package/build/module/ingest/types.d.ts +1 -1
  39. package/build/module/ingest/types.js.map +1 -1
  40. package/build/module/ingest-compat/index.d.ts +0 -1
  41. package/build/module/ingest-compat/index.js.map +1 -1
  42. package/build/module/ingest-compat/types.d.ts +0 -1
  43. package/build/module/ingest-compat/types.js.map +1 -1
  44. package/build/module/tsconfig.esm.tsbuildinfo +1 -1
  45. package/build/module/types.d.ts +0 -1
  46. package/build/module/types.js.map +1 -1
  47. package/package.json +14 -8
  48. package/src/client.ts +4 -1
  49. package/src/error.ts +1 -1
  50. package/src/generated/openapi-fetch.ts +1 -1
  51. package/src/generated/v1.ts +10139 -9185
  52. package/src/index.ts +6 -4
  53. package/src/ingest/index.ts +0 -4
  54. package/src/ingest/types.ts +1 -1
  55. package/src/types.ts +0 -1
  56. package/build/main/fetcher.d.ts +0 -18
  57. package/build/main/fetcher.js +0 -68
  58. package/build/main/fetcher.js.map +0 -1
  59. package/build/main/headers.d.ts +0 -18
  60. package/build/main/headers.js +0 -25
  61. package/build/main/headers.js.map +0 -1
  62. package/build/main/middlewares/curl.d.ts +0 -6
  63. package/build/main/middlewares/curl.js +0 -20
  64. package/build/main/middlewares/curl.js.map +0 -1
  65. package/build/main/middlewares/index.d.ts +0 -1
  66. package/build/main/middlewares/index.js +0 -18
  67. package/build/main/middlewares/index.js.map +0 -1
  68. package/build/main/retryable-errors.d.ts +0 -9
  69. package/build/main/retryable-errors.js +0 -38
  70. package/build/main/retryable-errors.js.map +0 -1
  71. package/build/module/fetcher.d.ts +0 -18
  72. package/build/module/fetcher.js +0 -63
  73. package/build/module/fetcher.js.map +0 -1
  74. package/build/module/headers.d.ts +0 -18
  75. package/build/module/headers.js +0 -23
  76. package/build/module/headers.js.map +0 -1
  77. package/build/module/middlewares/curl.d.ts +0 -6
  78. package/build/module/middlewares/curl.js +0 -16
  79. package/build/module/middlewares/curl.js.map +0 -1
  80. package/build/module/middlewares/index.d.ts +0 -1
  81. package/build/module/middlewares/index.js +0 -2
  82. package/build/module/middlewares/index.js.map +0 -1
  83. package/build/module/retryable-errors.d.ts +0 -9
  84. package/build/module/retryable-errors.js +0 -34
  85. package/build/module/retryable-errors.js.map +0 -1
  86. package/src/ingest-compat/index.ts +0 -99
  87. package/src/ingest-compat/map.ts +0 -111
  88. package/src/ingest-compat/types.ts +0 -11
  89. package/src/middlewares/curl.ts +0 -23
  90. package/src/middlewares/index.ts +0 -1
@@ -1,8 +1,9 @@
1
+ import type { useIngest } from './ingest';
2
+ import type { ApiClient } from './types';
1
3
  export * from './client';
2
4
  export * from './error';
3
5
  export * from './generated/v1';
4
6
  export * from './ingest';
5
- export * from './ingest';
6
- export * from './ingest-compat';
7
- export * from './middlewares';
8
7
  export * from './types';
8
+ export type ApiIngest = ReturnType<typeof useIngest>;
9
+ export type VRPlatformApi = ApiClient;
@@ -18,8 +18,5 @@ __exportStar(require("./client"), exports);
18
18
  __exportStar(require("./error"), exports);
19
19
  __exportStar(require("./generated/v1"), exports);
20
20
  __exportStar(require("./ingest"), exports);
21
- __exportStar(require("./ingest"), exports);
22
- __exportStar(require("./ingest-compat"), exports);
23
- __exportStar(require("./middlewares"), exports);
24
21
  __exportStar(require("./types"), exports);
25
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AAEzB,kDAAgC;AAChC,gDAA8B;AAC9B,0CAAwB","sourcesContent":["export * from './client';\nexport * from './error';\nexport * from './generated/v1';\nexport * from './ingest';\nexport * from './ingest';\n\nexport * from './ingest-compat';\nexport * from './middlewares';\nexport * from './types';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,2CAAyB;AACzB,0CAAwB;AACxB,iDAA+B;AAC/B,2CAAyB;AACzB,0CAAwB","sourcesContent":["import type { useIngest } from './ingest';\nimport type { ApiClient } from './types';\n\nexport * from './client';\nexport * from './error';\nexport * from './generated/v1';\nexport * from './ingest';\nexport * from './types';\n\nexport type ApiIngest = ReturnType<typeof useIngest>;\nexport type VRPlatformApi = ApiClient;\n"]}
@@ -1,9 +1,7 @@
1
1
  import type { ApiClient, RequestBody } from '../types';
2
2
  import type * as t from './types';
3
- export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
4
3
  export * from './types';
5
4
  export declare function usePostSources(api: ApiClient, config: t.IngestArg): <T = undefined>(data: RequestBody<"post:/sources/batch">["data"], configOverwrites?: t.IngestFnArg) => Promise<t.TypedResponseData<T>[]>;
6
- export type ApiIngest = ReturnType<typeof useIngest>;
7
5
  export declare function useIngest(api: ApiClient, config: t.IngestArg): {
8
6
  api: ApiClient;
9
7
  readonly sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["ingest/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { throwIfError } from '../error';\nimport type { ApiClient, RequestBody } from '../types';\nimport type * as t from './types';\n\nexport type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport * from './types';\n\nfunction mergeConfig(\n body: any,\n config: t.IngestArg,\n configOverwrites?: t.IngestFnArg\n) {\n const headers: Record<string, string> = {};\n if (configOverwrites) {\n const { correlationId, ...restOverwrites } = configOverwrites;\n for (const [key, value] of Object.entries(restOverwrites))\n if (value) body[key] = value;\n if (correlationId) headers['X-Correlation-Id'] = correlationId;\n }\n if (config.sessionId) headers['X-Session-Id'] = config.sessionId;\n\n return headers;\n}\n\nexport function usePostSources(api: ApiClient, config: t.IngestArg) {\n const { sessionId: _, ...restConfig } = config;\n async function post<T = undefined>(\n data: RequestBody<'post:/sources/batch'>['data'],\n configOverwrites?: t.IngestFnArg\n ): Promise<t.TypedResponseData<T>[]> {\n const body: RequestBody<'post:/sources/batch'> = {\n ...restConfig,\n data,\n };\n const headers = mergeConfig(body, config, configOverwrites);\n const response = throwIfError(\n await api.POST('/sources/batch', { body, headers })\n );\n return response.data as any;\n }\n return post;\n}\n\nexport type ApiIngest = ReturnType<typeof useIngest>;\n\nexport function useIngest(api: ApiClient, config: t.IngestArg) {\n const post = usePostSources(api, config);\n return {\n api,\n get sessionId() {\n return api.sessionId;\n },\n async sources(\n changes: t.IngestSourceInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post(changes, configOverwrites);\n },\n async updateSources(\n data: RequestBody<'put:/sources/batch'>['data'],\n configOverwrites?: t.IngestFnArg\n ) {\n const { sessionId: _, ...restConfig } = config;\n const body: RequestBody<'put:/sources/batch'> = {\n ...restConfig,\n data,\n };\n const headers = mergeConfig(body, config, configOverwrites);\n const response = throwIfError(\n await api.PUT('/sources/batch', { body, headers })\n );\n return response.data;\n },\n async reservations(\n changes: t.IngestReservationInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return [];\n return await post<t.ReservationParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'reservation',\n description: source.description || transform.confirmationCode,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n date: source.date || transform.bookedAt,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'reservation',\n },\n };\n }),\n configOverwrites\n );\n },\n async payments(\n changes: t.IngestPaymentInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.PaymentParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'payment',\n description: source.description || transform.description,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n date: source.date || transform.paidAt,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'payment',\n },\n };\n }),\n configOverwrites\n );\n },\n async listings(\n changes: t.IngestListingInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.ListingParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'listing',\n description: source.description || transform.name,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'listing',\n },\n };\n }),\n configOverwrites\n );\n },\n async cleanup(\n type: string | 'listing',\n configOverwrites?: t.IngestFnArg & {\n whereRange?: RequestBody<'put:/sources/cleanup'>['whereRange'];\n }\n ) {\n const body: RequestBody<'put:/sources/cleanup'> = {\n syncId: configOverwrites?.syncId || config.syncId,\n connectionId: configOverwrites?.connectionId || config.connectionId,\n type,\n };\n if (configOverwrites?.whereRange) {\n body.whereRange = configOverwrites.whereRange;\n }\n const headers = mergeConfig(body, config, configOverwrites);\n const response = throwIfError(\n await api.PUT('/sources/cleanup', { body, headers })\n );\n return response.ok as any;\n },\n async bankRecords(\n changes: t.IngestBankRecordInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.BankRecordParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'bankRecord',\n description: source.description || transform.description,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'bankRecord',\n },\n };\n }),\n configOverwrites\n );\n },\n async transactions(\n changes: t.IngestTransactionInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.TransactionParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'transaction',\n description: source.description || transform.description,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'transaction',\n },\n };\n }),\n configOverwrites\n );\n },\n async contacts(\n changes: t.IngestContactInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.ContactParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'contact',\n description: source.description || transform.name,\n uniqueRef: source.uniqueRef || transform.email!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'contact',\n },\n };\n }),\n configOverwrites\n );\n },\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["ingest/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { throwIfError } from '../error';\nimport type { ApiClient, RequestBody } from '../types';\nimport type * as t from './types';\n\nexport * from './types';\n\nfunction mergeConfig(\n body: any,\n config: t.IngestArg,\n configOverwrites?: t.IngestFnArg\n) {\n const headers: Record<string, string> = {};\n if (configOverwrites) {\n const { correlationId, ...restOverwrites } = configOverwrites;\n for (const [key, value] of Object.entries(restOverwrites))\n if (value) body[key] = value;\n if (correlationId) headers['X-Correlation-Id'] = correlationId;\n }\n if (config.sessionId) headers['X-Session-Id'] = config.sessionId;\n\n return headers;\n}\n\nexport function usePostSources(api: ApiClient, config: t.IngestArg) {\n const { sessionId: _, ...restConfig } = config;\n async function post<T = undefined>(\n data: RequestBody<'post:/sources/batch'>['data'],\n configOverwrites?: t.IngestFnArg\n ): Promise<t.TypedResponseData<T>[]> {\n const body: RequestBody<'post:/sources/batch'> = {\n ...restConfig,\n data,\n };\n const headers = mergeConfig(body, config, configOverwrites);\n const response = throwIfError(\n await api.POST('/sources/batch', { body, headers })\n );\n return response.data as any;\n }\n return post;\n}\n\nexport function useIngest(api: ApiClient, config: t.IngestArg) {\n const post = usePostSources(api, config);\n return {\n api,\n get sessionId() {\n return api.sessionId;\n },\n async sources(\n changes: t.IngestSourceInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post(changes, configOverwrites);\n },\n async updateSources(\n data: RequestBody<'put:/sources/batch'>['data'],\n configOverwrites?: t.IngestFnArg\n ) {\n const { sessionId: _, ...restConfig } = config;\n const body: RequestBody<'put:/sources/batch'> = {\n ...restConfig,\n data,\n };\n const headers = mergeConfig(body, config, configOverwrites);\n const response = throwIfError(\n await api.PUT('/sources/batch', { body, headers })\n );\n return response.data;\n },\n async reservations(\n changes: t.IngestReservationInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return [];\n return await post<t.ReservationParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'reservation',\n description: source.description || transform.confirmationCode,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n date: source.date || transform.bookedAt,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'reservation',\n },\n };\n }),\n configOverwrites\n );\n },\n async payments(\n changes: t.IngestPaymentInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.PaymentParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'payment',\n description: source.description || transform.description,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n date: source.date || transform.paidAt,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'payment',\n },\n };\n }),\n configOverwrites\n );\n },\n async listings(\n changes: t.IngestListingInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.ListingParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'listing',\n description: source.description || transform.name,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'listing',\n },\n };\n }),\n configOverwrites\n );\n },\n async cleanup(\n type: string | 'listing',\n configOverwrites?: t.IngestFnArg & {\n whereRange?: RequestBody<'put:/sources/cleanup'>['whereRange'];\n }\n ) {\n const body: RequestBody<'put:/sources/cleanup'> = {\n syncId: configOverwrites?.syncId || config.syncId,\n connectionId: configOverwrites?.connectionId || config.connectionId,\n type,\n };\n if (configOverwrites?.whereRange) {\n body.whereRange = configOverwrites.whereRange;\n }\n const headers = mergeConfig(body, config, configOverwrites);\n const response = throwIfError(\n await api.PUT('/sources/cleanup', { body, headers })\n );\n return response.ok as any;\n },\n async bankRecords(\n changes: t.IngestBankRecordInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.BankRecordParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'bankRecord',\n description: source.description || transform.description,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'bankRecord',\n },\n };\n }),\n configOverwrites\n );\n },\n async transactions(\n changes: t.IngestTransactionInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.TransactionParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'transaction',\n description: source.description || transform.description,\n uniqueRef: source.uniqueRef || transform.uniqueRef!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'transaction',\n },\n };\n }),\n configOverwrites\n );\n },\n async contacts(\n changes: t.IngestContactInput[],\n configOverwrites?: t.IngestFnArg\n ) {\n if (!changes.length) return undefined;\n return await post<t.ContactParam>(\n changes.map(({ source, ...transform }) => {\n return {\n ...source,\n type: source.type || 'contact',\n description: source.description || transform.name,\n uniqueRef: source.uniqueRef || transform.email!,\n status: source.status || 'active',\n transform: {\n data: transform,\n type: 'contact',\n },\n };\n }),\n configOverwrites\n );\n },\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { PartialBy } from '@finalytic/utils';
1
+ import type { PartialBy } from '@vrplatform/utils';
2
2
  import type { RequestBody, ResponseData } from '../types';
3
3
  export type ReservationParam = Omit<RequestBody<'post:/reservations/batch'>['data'][0], 'sourceId'>;
4
4
  export type PaymentParam = Omit<RequestBody<'post:/payments/batch'>['data'][0], 'sourceId'>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"src/","sources":["ingest/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PartialBy } from '@finalytic/utils';\nimport type { RequestBody, ResponseData } from '../types';\n\nexport type ReservationParam = Omit<\n RequestBody<'post:/reservations/batch'>['data'][0],\n 'sourceId'\n>;\nexport type PaymentParam = Omit<\n RequestBody<'post:/payments/batch'>['data'][0],\n 'sourceId'\n>;\nexport type ListingParam = Omit<\n RequestBody<'post:/listings/batch'>['data'][0],\n 'sourceId'\n>;\nexport type BankRecordParam = Omit<\n RequestBody<'post:/bank-records/batch'>['data'][0],\n 'sourceId'\n>;\nexport type TransactionParam = Omit<\n RequestBody<'post:/transactions/batch'>['data'][0],\n 'sourceId'\n>;\nexport type ContactParam = Omit<\n RequestBody<'post:/contacts/batch'>['data'][0],\n 'sourceId'\n>;\ntype _SourceWithoutTransform = Omit<\n RequestBody<'post:/sources/batch'>['data'][number],\n 'transform'\n> & {\n // this is ONLY for ecosystem ingestion, can be removed once ecosystem does not rely on ingest, but calls batch endpoints\n fileStorageId?: string;\n};\ntype _SourceWithTransform<T> = _SourceWithoutTransform & {\n transform: { type: string; data: T };\n};\nexport type Source<T = undefined> = T extends undefined\n ? _SourceWithoutTransform\n : _SourceWithTransform<T>;\n\nexport type IngestArg = Omit<RequestBody<'post:/sources/batch'>, 'data'> & {\n sessionId?: string;\n tenantId: string;\n};\nexport type IngestFnArg = Omit<Partial<IngestArg>, 'sessionId'> & {\n correlationId?: string;\n};\n\nexport type BatchResponseData = ResponseData<'post:/sources/batch'>['data'][0];\nexport type TypedResponseData<T = undefined> = Omit<\n BatchResponseData,\n 'transform'\n> &\n (T extends undefined\n ? { transform?: never }\n : {\n transform: Omit<BatchResponseData['transform'], 'data'> & {\n data: T;\n };\n });\n\nexport type Impossible<K extends keyof any> = {\n [P in K]: never;\n};\nexport type NoExtraProperties<T, U extends T = T> = U &\n Impossible<Exclude<keyof U, keyof T>>;\n\nexport type ObjectWithSource<T = undefined> = T & {\n source: PartialBy<_SourceWithoutTransform, 'type'>;\n};\n\nexport type IngestReservationInput = NoExtraProperties<\n ObjectWithSource<ReservationParam>\n>;\nexport type IngestPaymentInput = NoExtraProperties<\n ObjectWithSource<PaymentParam>\n>;\nexport type IngestListingInput = NoExtraProperties<\n ObjectWithSource<ListingParam>\n>;\nexport type IngestBankRecordInput = NoExtraProperties<\n ObjectWithSource<BankRecordParam>\n>;\nexport type IngestTransactionInput = NoExtraProperties<\n ObjectWithSource<TransactionParam>\n>;\nexport type IngestContactInput = NoExtraProperties<\n ObjectWithSource<ContactParam>\n>;\nexport type IngestSourceInput = NoExtraProperties<Source>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"src/","sources":["ingest/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PartialBy } from '@vrplatform/utils';\nimport type { RequestBody, ResponseData } from '../types';\n\nexport type ReservationParam = Omit<\n RequestBody<'post:/reservations/batch'>['data'][0],\n 'sourceId'\n>;\nexport type PaymentParam = Omit<\n RequestBody<'post:/payments/batch'>['data'][0],\n 'sourceId'\n>;\nexport type ListingParam = Omit<\n RequestBody<'post:/listings/batch'>['data'][0],\n 'sourceId'\n>;\nexport type BankRecordParam = Omit<\n RequestBody<'post:/bank-records/batch'>['data'][0],\n 'sourceId'\n>;\nexport type TransactionParam = Omit<\n RequestBody<'post:/transactions/batch'>['data'][0],\n 'sourceId'\n>;\nexport type ContactParam = Omit<\n RequestBody<'post:/contacts/batch'>['data'][0],\n 'sourceId'\n>;\ntype _SourceWithoutTransform = Omit<\n RequestBody<'post:/sources/batch'>['data'][number],\n 'transform'\n> & {\n // this is ONLY for ecosystem ingestion, can be removed once ecosystem does not rely on ingest, but calls batch endpoints\n fileStorageId?: string;\n};\ntype _SourceWithTransform<T> = _SourceWithoutTransform & {\n transform: { type: string; data: T };\n};\nexport type Source<T = undefined> = T extends undefined\n ? _SourceWithoutTransform\n : _SourceWithTransform<T>;\n\nexport type IngestArg = Omit<RequestBody<'post:/sources/batch'>, 'data'> & {\n sessionId?: string;\n tenantId: string;\n};\nexport type IngestFnArg = Omit<Partial<IngestArg>, 'sessionId'> & {\n correlationId?: string;\n};\n\nexport type BatchResponseData = ResponseData<'post:/sources/batch'>['data'][0];\nexport type TypedResponseData<T = undefined> = Omit<\n BatchResponseData,\n 'transform'\n> &\n (T extends undefined\n ? { transform?: never }\n : {\n transform: Omit<BatchResponseData['transform'], 'data'> & {\n data: T;\n };\n });\n\nexport type Impossible<K extends keyof any> = {\n [P in K]: never;\n};\nexport type NoExtraProperties<T, U extends T = T> = U &\n Impossible<Exclude<keyof U, keyof T>>;\n\nexport type ObjectWithSource<T = undefined> = T & {\n source: PartialBy<_SourceWithoutTransform, 'type'>;\n};\n\nexport type IngestReservationInput = NoExtraProperties<\n ObjectWithSource<ReservationParam>\n>;\nexport type IngestPaymentInput = NoExtraProperties<\n ObjectWithSource<PaymentParam>\n>;\nexport type IngestListingInput = NoExtraProperties<\n ObjectWithSource<ListingParam>\n>;\nexport type IngestBankRecordInput = NoExtraProperties<\n ObjectWithSource<BankRecordParam>\n>;\nexport type IngestTransactionInput = NoExtraProperties<\n ObjectWithSource<TransactionParam>\n>;\nexport type IngestContactInput = NoExtraProperties<\n ObjectWithSource<ContactParam>\n>;\nexport type IngestSourceInput = NoExtraProperties<Source>;\n"]}
@@ -3,7 +3,6 @@ import type { ApiClient } from '../types';
3
3
  import type { ListingInput, PaymentInput, ReservationInput } from './types';
4
4
  export * from './map';
5
5
  export * from './types';
6
- export type ApiIngestCompat = ReturnType<typeof useIngestCompat>;
7
6
  export declare function useIngestCompat(api: ApiClient, config: IngestArg): {
8
7
  api: ApiClient;
9
8
  readonly sessionId: string;
@@ -1 +1 @@
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
+ {"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 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,5 +1,4 @@
1
1
  import type { RequestBody } from '../types';
2
- export type PaymentLine = Record<string, any>;
3
2
  export type ReservationInput = Record<string, any>;
4
3
  export type ReservationOutput = RequestBody<'post:/reservations/batch'>['data'][0];
5
4
  export type PaymentInput = Record<string, any>;
@@ -1 +1 @@
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"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"src/","sources":["ingest-compat/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { RequestBody } from '../types';\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"]}
@@ -1 +1 @@
1
- {"root":["../../src/cache.ts","../../src/client.ts","../../src/error.ts","../../src/index.ts","../../src/sec.ts","../../src/types.ts","../../src/generated/openapi-fetch.ts","../../src/generated/v1.ts","../../src/ingest/index.ts","../../src/ingest/types.ts","../../src/ingest-compat/index.ts","../../src/ingest-compat/map.ts","../../src/ingest-compat/types.ts","../../src/middlewares/curl.ts","../../src/middlewares/index.ts"],"version":"5.9.2"}
1
+ {"root":["../../src/cache.ts","../../src/client.ts","../../src/error.ts","../../src/index.ts","../../src/sec.ts","../../src/types.ts","../../src/generated/openapi-fetch.ts","../../src/generated/v1.ts","../../src/ingest/index.ts","../../src/ingest/types.ts"],"version":"5.9.3"}
@@ -9,7 +9,6 @@ export type ApiClientAuth = {
9
9
  export type ApiClient = ReturnType<typeof createClient<paths>> & {
10
10
  sessionId: string;
11
11
  };
12
- export type VRPlatformApi = ApiClient;
13
12
  type ResponseCombinations = {
14
13
  [Path in keyof paths]: {
15
14
  [Method in keyof paths[Path]]: paths[Path][Method] extends never ? never : paths[Path][Method] extends {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":"","sourcesContent":["import type createClient from 'openapi-fetch';\nimport type { paths } from './generated/v1';\n\nexport type ApiClientAuth = {\n apiKey?: string;\n sec?: string;\n tenantId?: string;\n accessToken?: string;\n};\nexport type ApiClient = ReturnType<typeof createClient<paths>> & {\n sessionId: string;\n};\nexport type VRPlatformApi = ApiClient;\ntype ResponseCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n responses: {\n 200: { content: { 'application/json': unknown } };\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type ResponseData<T extends ResponseCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n responses: {\n 200: { content: { 'application/json': infer Data } };\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n\ntype RequestBodyCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n requestBody: {\n content: { 'application/json': unknown };\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type RequestBody<T extends RequestBodyCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n requestBody: {\n content: { 'application/json': infer Data };\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n\ntype RequestParamCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n parameters: {\n query?: Record<string, unknown>;\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type RequestQuery<T extends RequestParamCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n parameters: {\n query?: infer Data;\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":"","sourcesContent":["import type createClient from 'openapi-fetch';\nimport type { paths } from './generated/v1';\n\nexport type ApiClientAuth = {\n apiKey?: string;\n sec?: string;\n tenantId?: string;\n accessToken?: string;\n};\nexport type ApiClient = ReturnType<typeof createClient<paths>> & {\n sessionId: string;\n};\ntype ResponseCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n responses: {\n 200: { content: { 'application/json': unknown } };\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type ResponseData<T extends ResponseCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n responses: {\n 200: { content: { 'application/json': infer Data } };\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n\ntype RequestBodyCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n requestBody: {\n content: { 'application/json': unknown };\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type RequestBody<T extends RequestBodyCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n requestBody: {\n content: { 'application/json': infer Data };\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n\ntype RequestParamCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n parameters: {\n query?: Record<string, unknown>;\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type RequestQuery<T extends RequestParamCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n parameters: {\n query?: infer Data;\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n"]}
@@ -1,4 +1,4 @@
1
- import { type RetryableFetchParams } from '@finalytic/utils';
1
+ import { type RetryableFetchParams } from '@vrplatform/utils';
2
2
  import type { ApiClient, ApiClientAuth } from './types';
3
3
  export declare function useApiClient({ baseUrl: base, local, auth, sessionId: sid, testing, headers: h, ...retryableFetchParams }: {
4
4
  attempts?: number;
@@ -1,5 +1,5 @@
1
- import { useRetryableFetch } from '@finalytic/utils';
2
1
  import * as Sentry from '@sentry/core';
2
+ import { useRetryableFetch, } from '@vrplatform/utils';
3
3
  import createClient from 'openapi-fetch';
4
4
  import { useCache } from './cache';
5
5
  import { generateApiKeySec } from './sec';
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"src/","sources":["client.ts"],"names":[],"mappings":"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","sourcesContent":["import { type RetryableFetchParams, useRetryableFetch } from '@finalytic/utils';\nimport * as Sentry from '@sentry/core';\nimport createClient from 'openapi-fetch';\nimport { useCache } from './cache';\nimport type { paths } from './generated/v1';\nimport { generateApiKeySec } from './sec';\nimport type { ApiClient, ApiClientAuth } from './types';\n\nexport function useApiClient({\n baseUrl: base,\n local,\n auth,\n sessionId: sid,\n // headers: h,\n testing,\n headers: h,\n ...retryableFetchParams\n}: {\n attempts?: number;\n auth?: ApiClientAuth | (() => ApiClientAuth);\n baseUrl?: string;\n sessionId?: string;\n local?: boolean | number;\n headers?: Record<string, string> | (() => Record<string, string>);\n testing?: {\n overwriteUri?: string;\n getOverwriteTimestamp?: () => number | undefined;\n };\n} & RetryableFetchParams) {\n const baseUrl =\n (local\n ? `http://localhost:${typeof local === 'number' ? local : 8877}`\n : base) || 'https://api.vrplatform.app';\n\n const sessionId = sid || crypto.randomUUID();\n // cache the sec key for 1 minute (its valid for 5 minutes on the API)\n const cache = useCache(\n async (v: string) =>\n generateApiKeySec(v, testing?.getOverwriteTimestamp?.()),\n 60_000\n );\n\n const retryableFetch = useRetryableFetch({\n ...retryableFetchParams,\n onRetry(arg) {\n cache.invalidate();\n if (retryableFetchParams.onRetry) retryableFetchParams.onRetry(arg);\n },\n });\n\n const trace = Sentry.getTraceData();\n const client = createClient<paths>({\n baseUrl,\n fetch(req) {\n return retryableFetch(async () => {\n let clone: Request = req.clone() as any;\n if (testing?.overwriteUri)\n clone = new Request(testing.overwriteUri, clone);\n\n const a = (typeof auth === 'function' ? auth() : auth) || {};\n if (sessionId) clone.headers.set('X-Session-Id', sessionId);\n if (a.sec)\n clone.headers.set('X-Api-Key', `Sec ${await cache.current(a.sec)}`);\n if (a.apiKey) clone.headers.set('X-Api-Key', a.apiKey);\n if (a.tenantId) clone.headers.set('X-Team-Id', a.tenantId);\n if (a.accessToken)\n clone.headers.set(\n 'Authorization',\n a.accessToken.startsWith('Bearer ')\n ? a.accessToken\n : `Bearer ${a.accessToken}`\n );\n const additionalHeaders = h ? (typeof h === 'function' ? h() : h) : {};\n for (const key in additionalHeaders) {\n clone.headers.set(key, additionalHeaders[key]);\n }\n\n if (trace['sentry-trace'])\n clone.headers.set('sentry-trace', trace['sentry-trace']);\n if (trace.baggage) clone.headers.set('baggage', trace.baggage);\n\n return clone;\n });\n },\n });\n\n const sessionClient: ApiClient = client as any;\n sessionClient.sessionId = sessionId;\n return sessionClient;\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"src/","sources":["client.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Sentry from '@sentry/core';\nimport {\n type RetryableFetchParams,\n useRetryableFetch,\n} from '@vrplatform/utils';\nimport createClient from 'openapi-fetch';\nimport { useCache } from './cache';\nimport type { paths } from './generated/v1';\nimport { generateApiKeySec } from './sec';\nimport type { ApiClient, ApiClientAuth } from './types';\n\nexport function useApiClient({\n baseUrl: base,\n local,\n auth,\n sessionId: sid,\n // headers: h,\n testing,\n headers: h,\n ...retryableFetchParams\n}: {\n attempts?: number;\n auth?: ApiClientAuth | (() => ApiClientAuth);\n baseUrl?: string;\n sessionId?: string;\n local?: boolean | number;\n headers?: Record<string, string> | (() => Record<string, string>);\n testing?: {\n overwriteUri?: string;\n getOverwriteTimestamp?: () => number | undefined;\n };\n} & RetryableFetchParams) {\n const baseUrl =\n (local\n ? `http://localhost:${typeof local === 'number' ? local : 8877}`\n : base) || 'https://api.vrplatform.app';\n\n const sessionId = sid || crypto.randomUUID();\n // cache the sec key for 1 minute (its valid for 5 minutes on the API)\n const cache = useCache(\n async (v: string) =>\n generateApiKeySec(v, testing?.getOverwriteTimestamp?.()),\n 60_000\n );\n\n const retryableFetch = useRetryableFetch({\n ...retryableFetchParams,\n onRetry(arg) {\n cache.invalidate();\n if (retryableFetchParams.onRetry) retryableFetchParams.onRetry(arg);\n },\n });\n\n const trace = Sentry.getTraceData();\n const client = createClient<paths>({\n baseUrl,\n fetch(req) {\n return retryableFetch(async () => {\n let clone: Request = req.clone() as any;\n if (testing?.overwriteUri)\n clone = new Request(testing.overwriteUri, clone);\n\n const a = (typeof auth === 'function' ? auth() : auth) || {};\n if (sessionId) clone.headers.set('X-Session-Id', sessionId);\n if (a.sec)\n clone.headers.set('X-Api-Key', `Sec ${await cache.current(a.sec)}`);\n if (a.apiKey) clone.headers.set('X-Api-Key', a.apiKey);\n if (a.tenantId) clone.headers.set('X-Team-Id', a.tenantId);\n if (a.accessToken)\n clone.headers.set(\n 'Authorization',\n a.accessToken.startsWith('Bearer ')\n ? a.accessToken\n : `Bearer ${a.accessToken}`\n );\n const additionalHeaders = h ? (typeof h === 'function' ? h() : h) : {};\n for (const key in additionalHeaders) {\n clone.headers.set(key, additionalHeaders[key]);\n }\n\n if (trace['sentry-trace'])\n clone.headers.set('sentry-trace', trace['sentry-trace']);\n if (trace.baggage) clone.headers.set('baggage', trace.baggage);\n\n return clone;\n });\n },\n });\n\n const sessionClient: ApiClient = client as any;\n sessionClient.sessionId = sessionId;\n return sessionClient;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { hasValue } from '@finalytic/utils';
1
+ import { hasValue } from '@vrplatform/utils';
2
2
  export class ApiClientError extends Error {
3
3
  error;
4
4
  code;
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"src/","sources":["error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAY5C,MAAM,OAAO,cAAe,SAAQ,KAAK;IAMpB;IALnB,IAAI,CAAS;IACb,MAAM,CAEF;IACJ,OAAO,CAAM;IACb,YAAmB,KAAQ;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO;YAChB,KAAK,CAAC,OAAO,GAAG;gBACd,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,MAAM;oBACV,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,CAAC,CAAC,CAAC,OAAO,EAAG,CAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;qBACrC,MAAM,CAAC,QAAQ,CAAC;qBAChB,IAAI,CAAC,MAAM,CAAC,CAChB;qBACA,IAAI,CAAC,IAAI,CAAC;aACd;iBACE,MAAM,CAAC,QAAQ,CAAC;iBAChB,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAdJ,UAAK,GAAL,KAAK,CAAG;QAgBzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5C,CAAC;CACF;AAOD,MAAM,UAAU,YAAY,CAC1B,QAAwB;IAExB,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,KAAK,GAAM,QAAQ,CAAC,KAAK,CAAC;YAEhC,IAAI,KAAK;gBAAE,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAM,QAAQ,CAAC,KAAK,CAAC;IAEhC,IAAI,KAAK;QAAE,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC","sourcesContent":["import { hasValue } from '@finalytic/utils';\nimport type { FetchResponse } from './generated/openapi-fetch';\n\ntype E = {\n code: string;\n message: string;\n issues?: {\n message: string;\n }[];\n context?: any;\n stack?: any;\n};\nexport class ApiClientError extends Error {\n code: string;\n issues: {\n message: string;\n }[];\n context: any;\n constructor(public error: E) {\n if (!error.message)\n error.message = [\n error.code,\n error.issues\n ?.map((x) =>\n [x.message, (x as any).path?.join('->')]\n .filter(hasValue)\n .join(' on ')\n )\n .join(', '),\n ]\n .filter(hasValue)\n .join(': ');\n super(error.message);\n\n this.code = error.code;\n this.issues = error.issues || [];\n this.context = error.context || {};\n if (error.stack) this.stack = error.stack;\n }\n}\nexport function throwIfError<T extends FetchResponse<any, any, any>>(\n response: T\n): NonNullable<T['data']>;\nexport function throwIfError<T extends FetchResponse<any, any, any>>(\n response: Promise<T>\n): Promise<NonNullable<T['data']>>;\nexport function throwIfError<T extends FetchResponse<any, any, any>>(\n response: Promise<T> | T\n): Promise<NonNullable<T['data']>> | NonNullable<T['data']> {\n if (response instanceof Promise) {\n return response.then((response) => {\n if (response.response.status === 503) {\n throw new Error('Worker resources exceeded.');\n }\n\n const error: E = response.error;\n\n if (error) throw new ApiClientError(error);\n return response.data;\n });\n }\n\n const error: E = response.error;\n\n if (error) throw new ApiClientError(error);\n return response.data;\n}\n"]}
1
+ {"version":3,"file":"error.js","sourceRoot":"src/","sources":["error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAY7C,MAAM,OAAO,cAAe,SAAQ,KAAK;IAMpB;IALnB,IAAI,CAAS;IACb,MAAM,CAEF;IACJ,OAAO,CAAM;IACb,YAAmB,KAAQ;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO;YAChB,KAAK,CAAC,OAAO,GAAG;gBACd,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,MAAM;oBACV,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,CAAC,CAAC,CAAC,OAAO,EAAG,CAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;qBACrC,MAAM,CAAC,QAAQ,CAAC;qBAChB,IAAI,CAAC,MAAM,CAAC,CAChB;qBACA,IAAI,CAAC,IAAI,CAAC;aACd;iBACE,MAAM,CAAC,QAAQ,CAAC;iBAChB,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAdJ,UAAK,GAAL,KAAK,CAAG;QAgBzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5C,CAAC;CACF;AAOD,MAAM,UAAU,YAAY,CAC1B,QAAwB;IAExB,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,KAAK,GAAM,QAAQ,CAAC,KAAK,CAAC;YAEhC,IAAI,KAAK;gBAAE,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAM,QAAQ,CAAC,KAAK,CAAC;IAEhC,IAAI,KAAK;QAAE,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC","sourcesContent":["import { hasValue } from '@vrplatform/utils';\nimport type { FetchResponse } from './generated/openapi-fetch';\n\ntype E = {\n code: string;\n message: string;\n issues?: {\n message: string;\n }[];\n context?: any;\n stack?: any;\n};\nexport class ApiClientError extends Error {\n code: string;\n issues: {\n message: string;\n }[];\n context: any;\n constructor(public error: E) {\n if (!error.message)\n error.message = [\n error.code,\n error.issues\n ?.map((x) =>\n [x.message, (x as any).path?.join('->')]\n .filter(hasValue)\n .join(' on ')\n )\n .join(', '),\n ]\n .filter(hasValue)\n .join(': ');\n super(error.message);\n\n this.code = error.code;\n this.issues = error.issues || [];\n this.context = error.context || {};\n if (error.stack) this.stack = error.stack;\n }\n}\nexport function throwIfError<T extends FetchResponse<any, any, any>>(\n response: T\n): NonNullable<T['data']>;\nexport function throwIfError<T extends FetchResponse<any, any, any>>(\n response: Promise<T>\n): Promise<NonNullable<T['data']>>;\nexport function throwIfError<T extends FetchResponse<any, any, any>>(\n response: Promise<T> | T\n): Promise<NonNullable<T['data']>> | NonNullable<T['data']> {\n if (response instanceof Promise) {\n return response.then((response) => {\n if (response.response.status === 503) {\n throw new Error('Worker resources exceeded.');\n }\n\n const error: E = response.error;\n\n if (error) throw new ApiClientError(error);\n return response.data;\n });\n }\n\n const error: E = response.error;\n\n if (error) throw new ApiClientError(error);\n return response.data;\n}\n"]}
@@ -201,7 +201,7 @@ declare function serializeArrayParam(name: string, value: unknown[], options: {
201
201
  declare function createQuerySerializer<T = unknown>(options?: QuerySerializerOptions): (queryParams: T) => string;
202
202
  /**
203
203
  * Handle different OpenAPI 3.x serialization styles
204
- * @type {import("./index.js").defaultPathSerializer}
204
+ * @type {import("openapi-fetch").defaultPathSerializer}
205
205
  * @see https://swagger.io/docs/specification/serialization/#path
206
206
  */
207
207
  declare function defaultPathSerializer(pathname: string, pathParams: Record<string, unknown>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-fetch.js","sourceRoot":"src/","sources":["generated/openapi-fetch.ts"],"names":[],"mappings":"AA0YA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,GACtB,CAAC","sourcesContent":["import type {\n ErrorResponse,\n FilterKeys,\n HttpMethod,\n IsOperationRequestBodyOptional,\n MediaType,\n OperationRequestBodyContent,\n PathsWithMethod,\n RequiredKeysOf,\n ResponseObjectMap,\n SuccessResponse,\n} from 'openapi-typescript-helpers';\n\n/** Options for each client instance */\ninterface ClientOptions extends Omit<RequestInit, 'headers'> {\n /** set the common root URL for all API requests */\n baseUrl?: string;\n /** custom fetch (defaults to globalThis.fetch) */\n fetch?: (input: Request) => Promise<Response>;\n /** custom Request (defaults to globalThis.Request) */\n Request?: typeof Request;\n /** global querySerializer */\n querySerializer?: QuerySerializer<unknown> | QuerySerializerOptions;\n /** global bodySerializer */\n bodySerializer?: BodySerializer<unknown>;\n headers?: HeadersOptions;\n /** RequestInit extension object to pass as 2nd argument to fetch when supported (defaults to undefined) */\n requestInitExt?: Record<string, unknown>;\n}\n\ntype HeadersOptions =\n | Required<RequestInit>['headers']\n | Record<\n string,\n | string\n | number\n | boolean\n | (string | number | boolean)[]\n | null\n | undefined\n >;\n\ntype QuerySerializer<T> = (\n query: T extends { parameters: any }\n ? NonNullable<T['parameters']['query']>\n : Record<string, unknown>\n) => string;\n\n/** @see https://swagger.io/docs/specification/serialization/#query */\ntype QuerySerializerOptions = {\n /** Set serialization for arrays. @see https://swagger.io/docs/specification/serialization/#query */\n array?: {\n /** default: \"form\" */\n style: 'form' | 'spaceDelimited' | 'pipeDelimited';\n /** default: true */\n explode: boolean;\n };\n /** Set serialization for objects. @see https://swagger.io/docs/specification/serialization/#query */\n object?: {\n /** default: \"deepObject\" */\n style: 'form' | 'deepObject';\n /** default: true */\n explode: boolean;\n };\n /**\n * The `allowReserved` keyword specifies whether the reserved characters\n * `:/?#[]@!$&'()*+,;=` in parameter values are allowed to be sent as they\n * are, or should be percent-encoded. By default, allowReserved is `false`,\n * and reserved characters are percent-encoded.\n * @see https://swagger.io/docs/specification/serialization/#query\n */\n allowReserved?: boolean;\n};\n\ntype BodySerializer<T> = (body: OperationRequestBodyContent<T>) => any;\n\ntype BodyType<T = unknown> = {\n json: T;\n text: Awaited<ReturnType<Response['text']>>;\n blob: Awaited<ReturnType<Response['blob']>>;\n arrayBuffer: Awaited<ReturnType<Response['arrayBuffer']>>;\n stream: Response['body'];\n};\ntype ParseAs = keyof BodyType;\ntype ParseAsResponse<T, Options> = Options extends {\n parseAs: ParseAs;\n}\n ? BodyType<T>[Options['parseAs']]\n : T;\n\ninterface DefaultParamsOption {\n params?: {\n query?: Record<string, unknown>;\n };\n}\n\ntype ParamsOption<T> = T extends {\n parameters: any;\n}\n ? RequiredKeysOf<T['parameters']> extends never\n ? { params?: T['parameters'] }\n : { params: T['parameters'] }\n : DefaultParamsOption;\n\ntype RequestBodyOption<T> = OperationRequestBodyContent<T> extends never\n ? { body?: never }\n : IsOperationRequestBodyOptional<T> extends true\n ? { body?: OperationRequestBodyContent<T> }\n : { body: OperationRequestBodyContent<T> };\n\ntype FetchOptions<T> = RequestOptions<T> &\n Omit<RequestInit, 'body' | 'headers'>;\n\ntype FetchResponse<\n T extends Record<string | number, any>,\n Options,\n Media extends MediaType,\n> =\n | {\n data: ParseAsResponse<\n SuccessResponse<ResponseObjectMap<T>, Media>,\n Options\n >;\n error?: never;\n response: Response;\n }\n | {\n data?: never;\n error: ErrorResponse<ResponseObjectMap<T>, Media>;\n response: Response;\n };\n\ntype RequestOptions<T> = ParamsOption<T> &\n RequestBodyOption<T> & {\n baseUrl?: string;\n querySerializer?: QuerySerializer<T> | QuerySerializerOptions;\n bodySerializer?: BodySerializer<T>;\n parseAs?: ParseAs;\n fetch?: ClientOptions['fetch'];\n headers?: HeadersOptions;\n };\n\ntype MergedOptions<T = unknown> = {\n baseUrl: string;\n parseAs: ParseAs;\n querySerializer: QuerySerializer<T>;\n bodySerializer: BodySerializer<T>;\n fetch: typeof globalThis.fetch;\n};\n\ninterface MiddlewareCallbackParams {\n /** Current Request object */\n request: Request;\n /** The original OpenAPI schema path (including curly braces) */\n readonly schemaPath: string;\n /** OpenAPI parameters as provided from openapi-fetch */\n readonly params: {\n query?: Record<string, unknown>;\n header?: Record<string, unknown>;\n path?: Record<string, unknown>;\n cookie?: Record<string, unknown>;\n };\n /** Unique ID for this request */\n readonly id: string;\n /** createClient options (read-only) */\n readonly options: MergedOptions;\n}\n\ntype MiddlewareOnRequest = (options: MiddlewareCallbackParams) =>\n | void\n | Request\n | Response\n | undefined\n // biome-ignore lint/suspicious/noConfusingVoidType: N\n | Promise<Request | Response | undefined | void>;\ntype MiddlewareOnResponse = (\n options: MiddlewareCallbackParams & { response: Response }\n // biome-ignore lint/suspicious/noConfusingVoidType: N\n) => void | Response | undefined | Promise<Response | undefined | void>;\ntype MiddlewareOnError = (\n options: MiddlewareCallbackParams & { error: unknown }\n // biome-ignore lint/suspicious/noConfusingVoidType: N\n) => void | Response | Error | Promise<void | Response | Error>;\n\ntype Middleware =\n | {\n onRequest: MiddlewareOnRequest;\n onResponse?: MiddlewareOnResponse;\n onError?: MiddlewareOnError;\n }\n | {\n onRequest?: MiddlewareOnRequest;\n onResponse: MiddlewareOnResponse;\n onError?: MiddlewareOnError;\n }\n | {\n onRequest?: MiddlewareOnRequest;\n onResponse?: MiddlewareOnResponse;\n onError: MiddlewareOnError;\n };\n\n/** This type helper makes the 2nd function param required if params/requestBody are required; otherwise, optional */\ntype MaybeOptionalInit<Params, Location extends keyof Params> = RequiredKeysOf<\n FetchOptions<FilterKeys<Params, Location>>\n> extends never\n ? FetchOptions<FilterKeys<Params, Location>> | undefined\n : FetchOptions<FilterKeys<Params, Location>>;\n\n// The final init param to accept.\n// - Determines if the param is optional or not.\n// - Performs arbitrary [key: string] addition.\n// Note: the addition MUST happen after all the inference happens (otherwise TS can’t infer if init is required or not).\ntype InitParam<Init> = RequiredKeysOf<Init> extends never\n ? [(Init & { [key: string]: unknown })?]\n : [Init & { [key: string]: unknown }];\n\ntype ClientMethod<\n // biome-ignore lint/complexity/noBannedTypes: N\n Paths extends Record<string, Record<HttpMethod, {}>>,\n Method extends HttpMethod,\n Media extends MediaType,\n> = <\n Path extends PathsWithMethod<Paths, Method>,\n Init extends MaybeOptionalInit<Paths[Path], Method>,\n>(\n url: Path,\n ...init: InitParam<Init>\n) => Promise<FetchResponse<Paths[Path][Method], Init, Media>>;\n\ntype ClientRequestMethod<\n // biome-ignore lint/complexity/noBannedTypes: N\n Paths extends Record<string, Record<HttpMethod, {}>>,\n Media extends MediaType,\n> = <\n Method extends HttpMethod,\n Path extends PathsWithMethod<Paths, Method>,\n Init extends MaybeOptionalInit<Paths[Path], Method>,\n>(\n method: Method,\n url: Path,\n ...init: InitParam<Init>\n) => Promise<FetchResponse<Paths[Path][Method], Init, Media>>;\n\ntype ClientForPath<\n PathInfo extends Record<string | number, any>,\n Media extends MediaType,\n> = {\n [Method in keyof PathInfo as Uppercase<string & Method>]: <\n Init extends MaybeOptionalInit<PathInfo, Method>,\n >(\n ...init: InitParam<Init>\n ) => Promise<FetchResponse<PathInfo[Method], Init, Media>>;\n};\n\ninterface Client<Paths extends {}, Media extends MediaType = MediaType> {\n request: ClientRequestMethod<Paths, Media>;\n /** Call a GET endpoint */\n GET: ClientMethod<Paths, 'get', Media>;\n /** Call a PUT endpoint */\n PUT: ClientMethod<Paths, 'put', Media>;\n /** Call a POST endpoint */\n POST: ClientMethod<Paths, 'post', Media>;\n /** Call a DELETE endpoint */\n DELETE: ClientMethod<Paths, 'delete', Media>;\n /** Call a OPTIONS endpoint */\n OPTIONS: ClientMethod<Paths, 'options', Media>;\n /** Call a HEAD endpoint */\n HEAD: ClientMethod<Paths, 'head', Media>;\n /** Call a PATCH endpoint */\n PATCH: ClientMethod<Paths, 'patch', Media>;\n /** Call a TRACE endpoint */\n TRACE: ClientMethod<Paths, 'trace', Media>;\n /** Register middleware */\n use(...middleware: Middleware[]): void;\n /** Unregister middleware */\n eject(...middleware: Middleware[]): void;\n}\n\ntype ClientPathsWithMethod<\n CreatedClient extends Client<any, any>,\n Method extends HttpMethod,\n> = CreatedClient extends Client<infer Paths, infer _Media>\n ? PathsWithMethod<Paths, Method>\n : never;\n\ntype MethodResponse<\n CreatedClient extends Client<any, any>,\n Method extends HttpMethod,\n Path extends ClientPathsWithMethod<CreatedClient, Method>,\n // biome-ignore lint/complexity/noBannedTypes: Bla\n Options = {},\n> = CreatedClient extends Client<\n infer Paths extends { [key: string]: any },\n infer Media extends MediaType\n>\n ? NonNullable<FetchResponse<Paths[Path][Method], Options, Media>['data']>\n : never;\n\ndeclare function createClient<\n Paths extends {},\n Media extends MediaType = MediaType,\n>(clientOptions?: ClientOptions): Client<Paths, Media>;\n\ntype PathBasedClient<\n Paths extends Record<string | number, any>,\n Media extends MediaType = MediaType,\n> = {\n [Path in keyof Paths]: ClientForPath<Paths[Path], Media>;\n};\n\ndeclare function wrapAsPathBasedClient<\n Paths extends {},\n Media extends MediaType = MediaType,\n>(client: Client<Paths, Media>): PathBasedClient<Paths, Media>;\n\ndeclare function createPathBasedClient<\n Paths extends {},\n Media extends MediaType = MediaType,\n>(clientOptions?: ClientOptions): PathBasedClient<Paths, Media>;\n\n/** Serialize primitive params to string */\ndeclare function serializePrimitiveParam(\n name: string,\n value: string,\n options?: { allowReserved?: boolean }\n): string;\n\n/** Serialize object param to string */\ndeclare function serializeObjectParam(\n name: string,\n value: Record<string, unknown>,\n options: {\n style: 'simple' | 'label' | 'matrix' | 'form' | 'deepObject';\n explode: boolean;\n allowReserved?: boolean;\n }\n): string;\n\n/** Serialize array param to string */\ndeclare function serializeArrayParam(\n name: string,\n value: unknown[],\n options: {\n style:\n | 'simple'\n | 'label'\n | 'matrix'\n | 'form'\n | 'spaceDelimited'\n | 'pipeDelimited';\n explode: boolean;\n allowReserved?: boolean;\n }\n): string;\n\n/** Serialize query params to string */\ndeclare function createQuerySerializer<T = unknown>(\n options?: QuerySerializerOptions\n): (queryParams: T) => string;\n\n/**\n * Handle different OpenAPI 3.x serialization styles\n * @type {import(\"./index.js\").defaultPathSerializer}\n * @see https://swagger.io/docs/specification/serialization/#path\n */\ndeclare function defaultPathSerializer(\n pathname: string,\n pathParams: Record<string, unknown>\n): string;\n\n/** Serialize body object to string */\ndeclare function defaultBodySerializer<T>(body: T): string;\n\n/** Construct URL string from baseUrl and handle path and query params */\ndeclare function createFinalURL<O>(\n pathname: string,\n options: {\n baseUrl: string;\n params: {\n query?: Record<string, unknown>;\n path?: Record<string, unknown>;\n };\n querySerializer: QuerySerializer<O>;\n }\n): string;\n\n/** Merge headers a and b, with b taking priority */\ndeclare function mergeHeaders(\n ...allHeaders: (HeadersOptions | undefined)[]\n): Headers;\n\n/** Remove trailing slash from url */\ndeclare function removeTrailingSlash(url: string): string;\n\nexport {\n createFinalURL,\n createPathBasedClient,\n createQuerySerializer,\n defaultBodySerializer,\n defaultPathSerializer,\n mergeHeaders,\n removeTrailingSlash,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n wrapAsPathBasedClient,\n};\nexport type {\n BodySerializer,\n Client,\n ClientForPath,\n ClientMethod,\n ClientOptions,\n ClientPathsWithMethod,\n ClientRequestMethod,\n DefaultParamsOption,\n FetchOptions,\n FetchResponse,\n HeadersOptions,\n MaybeOptionalInit,\n MergedOptions,\n MethodResponse,\n Middleware,\n MiddlewareCallbackParams,\n ParamsOption,\n ParseAs,\n ParseAsResponse,\n PathBasedClient,\n QuerySerializer,\n QuerySerializerOptions,\n RequestBodyOption,\n RequestOptions,\n};\n"]}
1
+ {"version":3,"file":"openapi-fetch.js","sourceRoot":"src/","sources":["generated/openapi-fetch.ts"],"names":[],"mappings":"AA0YA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,GACtB,CAAC","sourcesContent":["import type {\n ErrorResponse,\n FilterKeys,\n HttpMethod,\n IsOperationRequestBodyOptional,\n MediaType,\n OperationRequestBodyContent,\n PathsWithMethod,\n RequiredKeysOf,\n ResponseObjectMap,\n SuccessResponse,\n} from 'openapi-typescript-helpers';\n\n/** Options for each client instance */\ninterface ClientOptions extends Omit<RequestInit, 'headers'> {\n /** set the common root URL for all API requests */\n baseUrl?: string;\n /** custom fetch (defaults to globalThis.fetch) */\n fetch?: (input: Request) => Promise<Response>;\n /** custom Request (defaults to globalThis.Request) */\n Request?: typeof Request;\n /** global querySerializer */\n querySerializer?: QuerySerializer<unknown> | QuerySerializerOptions;\n /** global bodySerializer */\n bodySerializer?: BodySerializer<unknown>;\n headers?: HeadersOptions;\n /** RequestInit extension object to pass as 2nd argument to fetch when supported (defaults to undefined) */\n requestInitExt?: Record<string, unknown>;\n}\n\ntype HeadersOptions =\n | Required<RequestInit>['headers']\n | Record<\n string,\n | string\n | number\n | boolean\n | (string | number | boolean)[]\n | null\n | undefined\n >;\n\ntype QuerySerializer<T> = (\n query: T extends { parameters: any }\n ? NonNullable<T['parameters']['query']>\n : Record<string, unknown>\n) => string;\n\n/** @see https://swagger.io/docs/specification/serialization/#query */\ntype QuerySerializerOptions = {\n /** Set serialization for arrays. @see https://swagger.io/docs/specification/serialization/#query */\n array?: {\n /** default: \"form\" */\n style: 'form' | 'spaceDelimited' | 'pipeDelimited';\n /** default: true */\n explode: boolean;\n };\n /** Set serialization for objects. @see https://swagger.io/docs/specification/serialization/#query */\n object?: {\n /** default: \"deepObject\" */\n style: 'form' | 'deepObject';\n /** default: true */\n explode: boolean;\n };\n /**\n * The `allowReserved` keyword specifies whether the reserved characters\n * `:/?#[]@!$&'()*+,;=` in parameter values are allowed to be sent as they\n * are, or should be percent-encoded. By default, allowReserved is `false`,\n * and reserved characters are percent-encoded.\n * @see https://swagger.io/docs/specification/serialization/#query\n */\n allowReserved?: boolean;\n};\n\ntype BodySerializer<T> = (body: OperationRequestBodyContent<T>) => any;\n\ntype BodyType<T = unknown> = {\n json: T;\n text: Awaited<ReturnType<Response['text']>>;\n blob: Awaited<ReturnType<Response['blob']>>;\n arrayBuffer: Awaited<ReturnType<Response['arrayBuffer']>>;\n stream: Response['body'];\n};\ntype ParseAs = keyof BodyType;\ntype ParseAsResponse<T, Options> = Options extends {\n parseAs: ParseAs;\n}\n ? BodyType<T>[Options['parseAs']]\n : T;\n\ninterface DefaultParamsOption {\n params?: {\n query?: Record<string, unknown>;\n };\n}\n\ntype ParamsOption<T> = T extends {\n parameters: any;\n}\n ? RequiredKeysOf<T['parameters']> extends never\n ? { params?: T['parameters'] }\n : { params: T['parameters'] }\n : DefaultParamsOption;\n\ntype RequestBodyOption<T> = OperationRequestBodyContent<T> extends never\n ? { body?: never }\n : IsOperationRequestBodyOptional<T> extends true\n ? { body?: OperationRequestBodyContent<T> }\n : { body: OperationRequestBodyContent<T> };\n\ntype FetchOptions<T> = RequestOptions<T> &\n Omit<RequestInit, 'body' | 'headers'>;\n\ntype FetchResponse<\n T extends Record<string | number, any>,\n Options,\n Media extends MediaType,\n> =\n | {\n data: ParseAsResponse<\n SuccessResponse<ResponseObjectMap<T>, Media>,\n Options\n >;\n error?: never;\n response: Response;\n }\n | {\n data?: never;\n error: ErrorResponse<ResponseObjectMap<T>, Media>;\n response: Response;\n };\n\ntype RequestOptions<T> = ParamsOption<T> &\n RequestBodyOption<T> & {\n baseUrl?: string;\n querySerializer?: QuerySerializer<T> | QuerySerializerOptions;\n bodySerializer?: BodySerializer<T>;\n parseAs?: ParseAs;\n fetch?: ClientOptions['fetch'];\n headers?: HeadersOptions;\n };\n\ntype MergedOptions<T = unknown> = {\n baseUrl: string;\n parseAs: ParseAs;\n querySerializer: QuerySerializer<T>;\n bodySerializer: BodySerializer<T>;\n fetch: typeof globalThis.fetch;\n};\n\ninterface MiddlewareCallbackParams {\n /** Current Request object */\n request: Request;\n /** The original OpenAPI schema path (including curly braces) */\n readonly schemaPath: string;\n /** OpenAPI parameters as provided from openapi-fetch */\n readonly params: {\n query?: Record<string, unknown>;\n header?: Record<string, unknown>;\n path?: Record<string, unknown>;\n cookie?: Record<string, unknown>;\n };\n /** Unique ID for this request */\n readonly id: string;\n /** createClient options (read-only) */\n readonly options: MergedOptions;\n}\n\ntype MiddlewareOnRequest = (options: MiddlewareCallbackParams) =>\n | void\n | Request\n | Response\n | undefined\n // biome-ignore lint/suspicious/noConfusingVoidType: N\n | Promise<Request | Response | undefined | void>;\ntype MiddlewareOnResponse = (\n options: MiddlewareCallbackParams & { response: Response }\n // biome-ignore lint/suspicious/noConfusingVoidType: N\n) => void | Response | undefined | Promise<Response | undefined | void>;\ntype MiddlewareOnError = (\n options: MiddlewareCallbackParams & { error: unknown }\n // biome-ignore lint/suspicious/noConfusingVoidType: N\n) => void | Response | Error | Promise<void | Response | Error>;\n\ntype Middleware =\n | {\n onRequest: MiddlewareOnRequest;\n onResponse?: MiddlewareOnResponse;\n onError?: MiddlewareOnError;\n }\n | {\n onRequest?: MiddlewareOnRequest;\n onResponse: MiddlewareOnResponse;\n onError?: MiddlewareOnError;\n }\n | {\n onRequest?: MiddlewareOnRequest;\n onResponse?: MiddlewareOnResponse;\n onError: MiddlewareOnError;\n };\n\n/** This type helper makes the 2nd function param required if params/requestBody are required; otherwise, optional */\ntype MaybeOptionalInit<Params, Location extends keyof Params> = RequiredKeysOf<\n FetchOptions<FilterKeys<Params, Location>>\n> extends never\n ? FetchOptions<FilterKeys<Params, Location>> | undefined\n : FetchOptions<FilterKeys<Params, Location>>;\n\n// The final init param to accept.\n// - Determines if the param is optional or not.\n// - Performs arbitrary [key: string] addition.\n// Note: the addition MUST happen after all the inference happens (otherwise TS can’t infer if init is required or not).\ntype InitParam<Init> = RequiredKeysOf<Init> extends never\n ? [(Init & { [key: string]: unknown })?]\n : [Init & { [key: string]: unknown }];\n\ntype ClientMethod<\n // biome-ignore lint/complexity/noBannedTypes: N\n Paths extends Record<string, Record<HttpMethod, {}>>,\n Method extends HttpMethod,\n Media extends MediaType,\n> = <\n Path extends PathsWithMethod<Paths, Method>,\n Init extends MaybeOptionalInit<Paths[Path], Method>,\n>(\n url: Path,\n ...init: InitParam<Init>\n) => Promise<FetchResponse<Paths[Path][Method], Init, Media>>;\n\ntype ClientRequestMethod<\n // biome-ignore lint/complexity/noBannedTypes: N\n Paths extends Record<string, Record<HttpMethod, {}>>,\n Media extends MediaType,\n> = <\n Method extends HttpMethod,\n Path extends PathsWithMethod<Paths, Method>,\n Init extends MaybeOptionalInit<Paths[Path], Method>,\n>(\n method: Method,\n url: Path,\n ...init: InitParam<Init>\n) => Promise<FetchResponse<Paths[Path][Method], Init, Media>>;\n\ntype ClientForPath<\n PathInfo extends Record<string | number, any>,\n Media extends MediaType,\n> = {\n [Method in keyof PathInfo as Uppercase<string & Method>]: <\n Init extends MaybeOptionalInit<PathInfo, Method>,\n >(\n ...init: InitParam<Init>\n ) => Promise<FetchResponse<PathInfo[Method], Init, Media>>;\n};\n\ninterface Client<Paths extends {}, Media extends MediaType = MediaType> {\n request: ClientRequestMethod<Paths, Media>;\n /** Call a GET endpoint */\n GET: ClientMethod<Paths, 'get', Media>;\n /** Call a PUT endpoint */\n PUT: ClientMethod<Paths, 'put', Media>;\n /** Call a POST endpoint */\n POST: ClientMethod<Paths, 'post', Media>;\n /** Call a DELETE endpoint */\n DELETE: ClientMethod<Paths, 'delete', Media>;\n /** Call a OPTIONS endpoint */\n OPTIONS: ClientMethod<Paths, 'options', Media>;\n /** Call a HEAD endpoint */\n HEAD: ClientMethod<Paths, 'head', Media>;\n /** Call a PATCH endpoint */\n PATCH: ClientMethod<Paths, 'patch', Media>;\n /** Call a TRACE endpoint */\n TRACE: ClientMethod<Paths, 'trace', Media>;\n /** Register middleware */\n use(...middleware: Middleware[]): void;\n /** Unregister middleware */\n eject(...middleware: Middleware[]): void;\n}\n\ntype ClientPathsWithMethod<\n CreatedClient extends Client<any, any>,\n Method extends HttpMethod,\n> = CreatedClient extends Client<infer Paths, infer _Media>\n ? PathsWithMethod<Paths, Method>\n : never;\n\ntype MethodResponse<\n CreatedClient extends Client<any, any>,\n Method extends HttpMethod,\n Path extends ClientPathsWithMethod<CreatedClient, Method>,\n // biome-ignore lint/complexity/noBannedTypes: Bla\n Options = {},\n> = CreatedClient extends Client<\n infer Paths extends { [key: string]: any },\n infer Media extends MediaType\n>\n ? NonNullable<FetchResponse<Paths[Path][Method], Options, Media>['data']>\n : never;\n\ndeclare function createClient<\n Paths extends {},\n Media extends MediaType = MediaType,\n>(clientOptions?: ClientOptions): Client<Paths, Media>;\n\ntype PathBasedClient<\n Paths extends Record<string | number, any>,\n Media extends MediaType = MediaType,\n> = {\n [Path in keyof Paths]: ClientForPath<Paths[Path], Media>;\n};\n\ndeclare function wrapAsPathBasedClient<\n Paths extends {},\n Media extends MediaType = MediaType,\n>(client: Client<Paths, Media>): PathBasedClient<Paths, Media>;\n\ndeclare function createPathBasedClient<\n Paths extends {},\n Media extends MediaType = MediaType,\n>(clientOptions?: ClientOptions): PathBasedClient<Paths, Media>;\n\n/** Serialize primitive params to string */\ndeclare function serializePrimitiveParam(\n name: string,\n value: string,\n options?: { allowReserved?: boolean }\n): string;\n\n/** Serialize object param to string */\ndeclare function serializeObjectParam(\n name: string,\n value: Record<string, unknown>,\n options: {\n style: 'simple' | 'label' | 'matrix' | 'form' | 'deepObject';\n explode: boolean;\n allowReserved?: boolean;\n }\n): string;\n\n/** Serialize array param to string */\ndeclare function serializeArrayParam(\n name: string,\n value: unknown[],\n options: {\n style:\n | 'simple'\n | 'label'\n | 'matrix'\n | 'form'\n | 'spaceDelimited'\n | 'pipeDelimited';\n explode: boolean;\n allowReserved?: boolean;\n }\n): string;\n\n/** Serialize query params to string */\ndeclare function createQuerySerializer<T = unknown>(\n options?: QuerySerializerOptions\n): (queryParams: T) => string;\n\n/**\n * Handle different OpenAPI 3.x serialization styles\n * @type {import(\"openapi-fetch\").defaultPathSerializer}\n * @see https://swagger.io/docs/specification/serialization/#path\n */\ndeclare function defaultPathSerializer(\n pathname: string,\n pathParams: Record<string, unknown>\n): string;\n\n/** Serialize body object to string */\ndeclare function defaultBodySerializer<T>(body: T): string;\n\n/** Construct URL string from baseUrl and handle path and query params */\ndeclare function createFinalURL<O>(\n pathname: string,\n options: {\n baseUrl: string;\n params: {\n query?: Record<string, unknown>;\n path?: Record<string, unknown>;\n };\n querySerializer: QuerySerializer<O>;\n }\n): string;\n\n/** Merge headers a and b, with b taking priority */\ndeclare function mergeHeaders(\n ...allHeaders: (HeadersOptions | undefined)[]\n): Headers;\n\n/** Remove trailing slash from url */\ndeclare function removeTrailingSlash(url: string): string;\n\nexport {\n createFinalURL,\n createPathBasedClient,\n createQuerySerializer,\n defaultBodySerializer,\n defaultPathSerializer,\n mergeHeaders,\n removeTrailingSlash,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n wrapAsPathBasedClient,\n};\nexport type {\n BodySerializer,\n Client,\n ClientForPath,\n ClientMethod,\n ClientOptions,\n ClientPathsWithMethod,\n ClientRequestMethod,\n DefaultParamsOption,\n FetchOptions,\n FetchResponse,\n HeadersOptions,\n MaybeOptionalInit,\n MergedOptions,\n MethodResponse,\n Middleware,\n MiddlewareCallbackParams,\n ParamsOption,\n ParseAs,\n ParseAsResponse,\n PathBasedClient,\n QuerySerializer,\n QuerySerializerOptions,\n RequestBodyOption,\n RequestOptions,\n};\n"]}