@pix.js/dict
Version:
1 lines • 37.6 kB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import { pascalCase } from 'change-case/keys'\nimport {\n AcknowledgePortabilityParameters,\n AcknowledgePortabilityResponse,\n CancelPortabilityParameters,\n CancelPortabilityResponse,\n CheckKeyResponse,\n CompletePortabilityParameters,\n CompletePortabilityResponse,\n ConfirmPortabilityParameters,\n ConfirmPortabilityResponse,\n CreateDirectoryRequest,\n CreateDirectoryResponse,\n CreatePortabilityRequest,\n CreatePortabilityResponse,\n DeleteEntryRequest,\n DeleteEntryResponse,\n GetDirectoryByCidParameters,\n GetDirectoryByCidResponse,\n GetDirectoryParameters,\n GetDirectoryResponse,\n GetPortabilityParameters,\n GetPortabilityResponse,\n ListPortabilityParameters,\n ListPortabilityResponse,\n UpdateDirectoryRequest,\n UpdateDirectoryResponse,\n} from './models'\nimport {\n CreateCidsFileParameters,\n CreateCidsFileResponse,\n GetCidsFileParameters,\n GetCidsFileResponse,\n ListCidsEventsParameters,\n ListCidsEventsResponse,\n VerifySyncParameters,\n VerifySyncResponse,\n} from './models/cid'\nimport {\n CancelFraudMarkerParameters,\n CancelFraudMarkerResponse,\n GetFraudMarkerParameters,\n GetFraudMarkerResponse,\n MarkFraudParameters,\n MarkFraudResponse,\n} from './models/fraud'\nimport {\n AcknowledgeInfractionParameters,\n AcknowledgeInfractionResponse,\n CancelInfractionParameters,\n CancelInfractionResponse,\n CancelRefundParameters,\n CancelRefundResponse,\n CloseInfractionParameters,\n CloseInfractionResponse,\n CloseRefundParameters,\n CloseRefundResponse,\n CreateRefundParameters,\n CreateRefundResponse,\n GetInfractionParameters,\n GetInfractionResponse,\n GetRefundParameters,\n GetRefundResponse,\n ListInfractionsParameters,\n ListInfractionsResponse,\n ListRefundsParameters,\n ListRefundsResponse,\n ReportInfractionParameters,\n ReportInfractionResponse,\n} from './models/infraction'\nimport { PixDictApiOptions } from './types'\nimport { buildDictXml, parseDictXml, toQueryString } from './utils'\n\nexport class PixDictApi {\n private readonly url: string\n\n constructor(options: PixDictApiOptions) {\n if (!options.url) {\n throw new Error('Dict api url is required')\n }\n this.url = options.url\n }\n\n /**\n * Creates a new key binding with a transactional account.\n * @param request - The CreateDirectoryRequest object containing the key and transactional account information.\n * @returns A Promise that resolves to the CreateDirectoryResponse object containing the operation result.\n */\n public async createDirectory(request: CreateDirectoryRequest): Promise<CreateDirectoryResponse> {\n const requestObject = buildDictXml(request, 'CreateEntryRequest')\n\n const response = await fetch(`${this.url}/api/v2/entries/`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n const data = await response.text()\n return parseDictXml(data, 'CreateEntryResponse')\n }\n\n /**\n * Retrieves directory information for a specific key.\n * @param key - The key to retrieve information for.\n * @param parameters - The GetDirectoryParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the GetDirectoryResponse object containing the directory information.\n */\n public async getDirectory(key: string, parameters: GetDirectoryParameters): Promise<GetDirectoryResponse> {\n const response = await fetch(\n `${this.url}/api/v2/entries/${key}?IncludeStatistics=${parameters.includeStatistics}`,\n {\n headers: {\n 'Content-Type': 'application/xml',\n 'PI-RequestingParticipant': parameters.piRequestingParticipant,\n 'PI-PayerId': parameters.piPayerId,\n 'PI-EndToEndId': parameters.piEndToEndId,\n },\n },\n )\n\n return parseDictXml(await response.text(), 'GetEntryResponse')\n }\n\n /**\n * Retrieves directory information for a specific CID.\n * @param parameters - The GetDirectoryByCidParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the GetDirectoryByCidResponse object containing the directory information.\n */\n public async getDirectoryByCid(parameters: GetDirectoryByCidParameters): Promise<GetDirectoryByCidResponse> {\n const response = await fetch(`${this.url}/api/v2/cids/entries/${parameters.cid}`, {\n headers: {\n 'Content-Type': 'application/xml',\n 'PI-RequestingParticipant': parameters.piRequestingParticipant,\n },\n })\n\n return parseDictXml(await response.text(), 'GetEntryByCidResponse')\n }\n\n /**\n * Updates the directory information for a specific key.\n * @param request - The UpdateDirectoryRequest object containing the key and updated information.\n * @returns A Promise that resolves to the UpdateDirectoryResponse object containing the operation result.\n */\n public async updateDirectory(request: UpdateDirectoryRequest): Promise<UpdateDirectoryResponse> {\n const requestObject = buildDictXml(request, 'UpdateEntryRequest')\n\n const response = await fetch(`${this.url}/api/v2/entries/${request.key}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'UpdateEntryResponse')\n }\n\n /**\n * Deletes the directory information for a specific key.\n * @param key - The key to delete information for.\n * @returns A Promise that resolves to the DeleteEntryResponse object containing the operation result.\n */\n public async deleteDirectory(request: DeleteEntryRequest): Promise<DeleteEntryResponse> {\n const requestObject = buildDictXml(request, 'DeleteEntryRequest')\n const response = await fetch(`${this.url}/api/v2/entries/${request.key}/delete`, {\n method: 'POST',\n body: requestObject,\n headers: {\n 'Content-Type': 'application/xml',\n },\n })\n\n return parseDictXml(await response.text(), 'DeleteEntryResponse')\n }\n\n /**\n * Checks the status of multiple keys.\n * @param keys - An array of keys to check.\n * @returns A Promise that resolves to the CheckKeyResponse object containing the status of the keys.\n */\n public async checkKey(keys: string[]): Promise<CheckKeyResponse> {\n const keysObject = keys.map((key) => ({ key }))\n const requestObject = buildDictXml({ keys: keysObject }, 'CheckKeysRequest')\n\n const response = await fetch(`${this.url}/api-np/v2/keys/check`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CheckKeysResponse')\n }\n\n /**\n * Creates a portability request for a specific key. (aka. Reivindicação)\n * @param request - The CreatePortabilityRequest object containing the key and portability information.\n * @returns A Promise that resolves to the CreatePortabilityResponse object containing the operation result.\n */\n public async createPortability(request: CreatePortabilityRequest): Promise<CreatePortabilityResponse> {\n const requestObject = buildDictXml(request, 'CreateClaimRequest')\n const response = await fetch(`${this.url}/api/v2/claims/`, {\n method: 'POST',\n body: requestObject,\n headers: {\n 'Content-Type': 'application/xml',\n },\n })\n\n return parseDictXml(await response.text(), 'CreateClaimResponse')\n }\n\n /**\n * Retrieves a list of portabilities, ordered by the LastModified field in ascending order, according to the filters passed.\n * @param parameters - The ListPortabilityParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the ListPortabilityResponse object containing the portability information.\n */\n public async listPortability(parameters: ListPortabilityParameters): Promise<ListPortabilityResponse> {\n const queryParams = toQueryString(\n pascalCase({\n participant: parameters.participant,\n includeIndirectParticipants: parameters.includeIndirectParticipants,\n isDonor: parameters.isDonor,\n isClaimer: parameters.isClaimer,\n status: parameters.status,\n type: parameters.type,\n modifiedAfter: parameters.modifiedAfter,\n modifiedBefore: parameters.modifiedBefore,\n limit: parameters.limit,\n }) as Record<string, string | number | boolean | string[]>,\n )\n\n const response = await fetch(`${this.url}/api/v2/claims/?${queryParams}`)\n return parseDictXml(await response.text(), 'ListClaimsResponse')\n }\n\n /**\n * Retrieves the details of a specific portability claim.\n * @param parameters - The GetPortabilityParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the GetPortabilityResponse object containing the portability claim details.\n */\n public async getPortability(parameters: GetPortabilityParameters): Promise<GetPortabilityResponse> {\n const response = await fetch(`${this.url}/api/v2/claims/${parameters.id}`, {\n headers: {\n 'PI-RequestingParticipant': parameters.participant,\n 'Content-Type': 'application/xml',\n },\n })\n return parseDictXml(await response.text(), 'GetClaimResponse')\n }\n\n /**\n * Acknowledges a portability from the donor participant.\n * @param parameters - The AcknowledgePortabilityParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the AcknowledgePortabilityResponse object containing the operation result.\n */\n public async acknowledgePortability(\n parameters: AcknowledgePortabilityParameters,\n ): Promise<AcknowledgePortabilityResponse> {\n const requestObject = buildDictXml(parameters, 'AcknowledgeClaimRequest')\n const response = await fetch(`${this.url}/api/v2/claims/${parameters.claimId}/acknowledge`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'AcknowledgeClaimResponse')\n }\n\n /**\n * Confirms a portability from the donor participant.\n * @param parameters - The ConfirmPortabilityParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the ConfirmPortabilityResponse object containing the operation result.\n */\n public async confirmPortability(parameters: ConfirmPortabilityParameters): Promise<ConfirmPortabilityResponse> {\n const requestObject = buildDictXml(parameters, 'ConfirmClaimRequest')\n const response = await fetch(`${this.url}/api/v2/claims/${parameters.claimId}/confirm`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'ConfirmClaimResponse')\n }\n\n /**\n * Cancels a portability or ownership claim.\n * @param parameters - The CancelPortabilityParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CancelPortabilityResponse object containing the operation result.\n */\n public async cancelPortability(parameters: CancelPortabilityParameters): Promise<CancelPortabilityResponse> {\n const requestObject = buildDictXml(parameters, 'CancelClaimRequest')\n const response = await fetch(`${this.url}/api/v2/claims/${parameters.claimId}/cancel`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CancelClaimResponse')\n }\n\n /**\n * Completes a portability or ownership claim.\n * @param parameters - The CompletePortabilityParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CompletePortabilityResponse object containing the operation result.\n */\n public async completePortability(parameters: CompletePortabilityParameters): Promise<CompletePortabilityResponse> {\n const requestObject = buildDictXml(parameters, 'CompleteClaimRequest')\n const response = await fetch(`${this.url}/api/v2/claims/${parameters.claimId}/complete`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CompleteClaimResponse')\n }\n\n /**\n * Creates a sync verification for a participant and key type.\n * @param parameters - The VerifySyncParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the VerifySyncResponse object containing the operation result.\n */\n public async verifySync(parameters: VerifySyncParameters): Promise<VerifySyncResponse> {\n const requestObject = buildDictXml(parameters, 'CreateSyncVerificationRequest')\n const response = await fetch(`${this.url}/api/v2/sync-verifications/`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CreateSyncVerificationResponse')\n }\n\n /**\n * Creates a CIDs file for a participant and key type.\n * @param parameters - The CreateCidsFileParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CreateCidsFileResponse object containing the operation result.\n */\n public async createCidsFile(parameters: CreateCidsFileParameters): Promise<CreateCidsFileResponse> {\n const requestObject = buildDictXml(parameters, 'CreateCidsFileRequest')\n const response = await fetch(`${this.url}/api/v2/cids/file`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CreateCidSetFileResponse')\n }\n\n /**\n * Retrieves a CIDs file by ID.\n * @param parameters - The GetCidsFileParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the GetCidsFileResponse object containing the CIDs file details.\n */\n public async getCidsFile(parameters: GetCidsFileParameters): Promise<GetCidsFileResponse> {\n const response = await fetch(`${this.url}/api/v2/cids/file/${parameters.id}`, {\n headers: {\n 'Content-Type': 'application/xml',\n 'PI-RequestingParticipant': parameters.piRequestingParticipant,\n },\n })\n\n return parseDictXml(await response.text(), 'GetCidSetFileResponse')\n }\n\n /**\n * Retrieves a list of CIDs events for a participant and key type.\n * @param parameters - The ListCidsEventsParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the ListCidsEventsResponse object containing the CIDs events.\n */\n public async listCidsEvents(parameters: ListCidsEventsParameters): Promise<ListCidsEventsResponse> {\n const queryParams = toQueryString(\n pascalCase({\n participant: parameters.participant,\n keyType: parameters.keyType,\n startTime: parameters.startTime,\n endTime: parameters.endTime,\n limit: parameters.limit,\n }) as Record<string, string | number | boolean | string[]>,\n )\n\n const response = await fetch(`${this.url}/api/v2/cids/events?${queryParams}`, {\n headers: {\n 'Content-Type': 'application/xml',\n },\n })\n\n return parseDictXml(await response.text(), 'ListCidSetEventsResponse')\n }\n\n /**\n * Reports an infraction for a participant.\n * @param parameters - The ReportInfractionParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the ReportInfractionResponse object containing the operation result.\n */\n public async reportInfraction(parameters: ReportInfractionParameters): Promise<ReportInfractionResponse> {\n const requestObject = buildDictXml(parameters, 'CreateInfractionReportRequest')\n\n const response = await fetch(`${this.url}/api/v2/infraction-reports/`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CreateInfractionReportResponse')\n }\n\n /**\n * Retrieves a list of infractions for a participant.\n * @param parameters - The ListInfractionsParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the ListInfractionsResponse object containing the infractions.\n */\n public async listInfractions(parameters: ListInfractionsParameters): Promise<ListInfractionsResponse> {\n const queryParams = toQueryString(\n pascalCase({\n participant: parameters.participant,\n includeIndirectParticipants: parameters.includeIndirectParticipants,\n isReporter: parameters.isReporter,\n isCounterparty: parameters.isCounterparty,\n status: parameters.status,\n modifiedAfter: parameters.modifiedAfter,\n modifiedBefore: parameters.modifiedBefore,\n limit: parameters.limit,\n includeDetails: parameters.includeDetails,\n }) as Record<string, string | number | boolean | string[]>,\n )\n\n const response = await fetch(`${this.url}/api/v2/infraction-reports?${queryParams}`, {\n headers: {\n 'Content-Type': 'application/xml',\n },\n })\n\n return parseDictXml(await response.text(), 'ListInfractionReportsResponse')\n }\n\n /**\n * Retrieves an infraction by ID.\n * @param parameters - The GetInfractionParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the GetInfractionResponse object containing the infraction.\n */\n public async getInfraction(parameters: GetInfractionParameters): Promise<GetInfractionResponse> {\n const response = await fetch(`${this.url}/api/v2/infraction-reports/${parameters.id}`, {\n headers: {\n 'Content-Type': 'application/xml',\n 'PI-RequestingParticipant': parameters.piRequestingParticipant,\n },\n })\n\n return parseDictXml(await response.text(), 'GetInfractionReportResponse')\n }\n\n /**\n * Acknowledges an infraction.\n * @param parameters - The AcknowledgeInfractionParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the AcknowledgeInfractionResponse object containing the operation result.\n */\n public async acknowledgeInfraction(\n parameters: AcknowledgeInfractionParameters,\n ): Promise<AcknowledgeInfractionResponse> {\n const requestObject = buildDictXml(parameters, 'AcknowledgeInfractionReportRequest')\n const response = await fetch(`${this.url}/api/v2/infraction-reports/${parameters.infractionReportId}/acknowledge`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'AcknowledgeInfractionReportResponse')\n }\n\n /**\n * Cancels an infraction.\n * @param parameters - The CancelInfractionParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CancelInfractionResponse object containing the operation result.\n */\n public async cancelInfraction(parameters: CancelInfractionParameters): Promise<CancelInfractionResponse> {\n const requestObject = buildDictXml(parameters, 'CancelInfractionReportRequest')\n const response = await fetch(`${this.url}/api/v2/infraction-reports/${parameters.infractionReportId}/cancel`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CancelInfractionReportResponse')\n }\n\n /**\n * Closes an infraction.\n * @param parameters - The CloseInfractionParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CloseInfractionResponse object containing the operation result.\n */\n public async closeInfraction(parameters: CloseInfractionParameters): Promise<CloseInfractionResponse> {\n const requestObject = buildDictXml(parameters, 'CloseInfractionReportRequest')\n const response = await fetch(`${this.url}/api/v2/infraction-reports/${parameters.infractionReportId}/close`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CloseInfractionReportResponse')\n }\n\n /**\n * The refund request can be created by the payer's PSP in cases where there is a well-founded suspicion of fraud and in those where there is an operational failure in the system of any of the participants involved in the transaction.\n * @param parameters - The CreateRefundParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CreateRefundResponse object containing the operation result.\n */\n public async createRefund(parameters: CreateRefundParameters): Promise<CreateRefundResponse> {\n const requestObject = buildDictXml(parameters, 'CreateRefundRequest')\n const response = await fetch(`${this.url}/api/v2/refunds`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CreateRefundResponse')\n }\n\n /**\n * Retrieves a list of refunds for a participant.\n * @param parameters - The ListRefundsParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the ListRefundsResponse object containing the refunds.\n */\n public async listRefunds(parameters: ListRefundsParameters): Promise<ListRefundsResponse> {\n const queryParams = toQueryString(\n pascalCase({\n participant: parameters.participant,\n includeIndirectParticipants: parameters.includeIndirectParticipants,\n role: parameters.role,\n status: parameters.status,\n modifiedAfter: parameters.modifiedAfter,\n modifiedBefore: parameters.modifiedBefore,\n limit: parameters.limit,\n includeDetails: parameters.includeDetails,\n }) as Record<string, string | number | boolean | string[]>,\n )\n\n const response = await fetch(`${this.url}/api/v2/refunds?${queryParams}`, {\n headers: {\n 'Content-Type': 'application/xml',\n },\n })\n\n return parseDictXml(await response.text(), 'ListRefundsResponse')\n }\n\n /**\n * Retrieves a refund by ID.\n * @param parameters - The GetRefundParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the GetRefundResponse object containing the refund.\n */\n public async getRefund(parameters: GetRefundParameters): Promise<GetRefundResponse> {\n const response = await fetch(`${this.url}/api/v2/refunds/${parameters.id}`, {\n headers: {\n 'Content-Type': 'application/xml',\n 'PI-RequestingParticipant': parameters.piRequestingParticipant,\n },\n })\n\n return parseDictXml(await response.text(), 'GetRefundResponse')\n }\n\n /**\n * Cancels a refund.\n * @param parameters - The CancelRefundParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CancelRefundResponse object containing the operation result.\n */\n public async cancelRefund(parameters: CancelRefundParameters): Promise<CancelRefundResponse> {\n const requestObject = buildDictXml(parameters, 'CancelRefundRequest')\n const response = await fetch(`${this.url}/api/v2/refunds/${parameters.refundId}/cancel`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CancelRefundResponse')\n }\n\n /**\n * Closes a refund.\n * @param parameters - The CloseRefundParameters object containing the parameters for the request.\n * @returns A Promise that resolves to the CloseRefundResponse object containing the operation result.\n */\n public async closeRefund(parameters: CloseRefundParameters): Promise<CloseRefundResponse> {\n const requestObject = buildDictXml(parameters, 'CloseRefundRequest')\n const response = await fetch(`${this.url}/api/v2/refunds/${parameters.refundId}/close`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CloseRefundResponse')\n }\n\n public async markFraud(parameters: MarkFraudParameters): Promise<MarkFraudResponse> {\n const requestObject = buildDictXml(parameters, 'CreateFraudMarkerRequest')\n const response = await fetch(`${this.url}/api/v2/fraud-markers/`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CreateFraudMarkerResponse')\n }\n\n public async getFraudMarker(parameters: GetFraudMarkerParameters): Promise<GetFraudMarkerResponse> {\n const response = await fetch(`${this.url}/api/v2/fraud-markers/${parameters.id}`, {\n headers: {\n 'Content-Type': 'application/xml',\n 'PI-RequestingParticipant': parameters.piRequestingParticipant,\n },\n })\n\n return parseDictXml(await response.text(), 'GetFraudMarkerResponse')\n }\n\n public async cancelFraudMarker(parameters: CancelFraudMarkerParameters): Promise<CancelFraudMarkerResponse> {\n const requestObject = buildDictXml(parameters, 'CancelFraudMarkerRequest')\n const response = await fetch(`${this.url}/api/v2/fraud-markers/${parameters.fraudMarkerId}/cancel`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/xml',\n },\n body: requestObject,\n })\n\n return parseDictXml(await response.text(), 'CancelFraudMarkerResponse')\n }\n}\n","import { camelCase, pascalCase } from 'change-case/keys'\nimport { XMLBuilder, XMLParser } from 'fast-xml-parser'\n\nexport const parseDictXml = <T>(xml: string, rootKey: string): T => {\n const parsed = new XMLParser({\n ignoreAttributes: false,\n attributeNamePrefix: '',\n textNodeName: 'value',\n }).parse(xml)\n return camelCase(parsed[rootKey], 10) as T\n}\n\nexport const buildDictXml = <T>(request: T, rootKey: string): string => {\n const xmlBuilder = new XMLBuilder({})\n return xmlBuilder.build({ [rootKey]: pascalCase(request) })\n}\n\nexport const toQueryString = (params: Record<string, string | string[] | number | boolean>): string => {\n const queryParams = new URLSearchParams()\n for (const [key, value] of Object.entries(params)) {\n if (value) {\n queryParams.set(key, value.toString())\n }\n }\n\n return queryParams.toString()\n}\n"],"mappings":"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","names":["import_keys"]}