@hubcommerce/n11 1.0.0

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 (223) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/LICENSE +21 -0
  3. package/README.md +81 -0
  4. package/dist/categories/api.d.ts +12 -0
  5. package/dist/categories/api.d.ts.map +1 -0
  6. package/dist/categories/api.js +34 -0
  7. package/dist/client.d.ts +37 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +70 -0
  10. package/dist/config.d.ts +9 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +58 -0
  13. package/dist/connection.d.ts +5 -0
  14. package/dist/connection.d.ts.map +1 -0
  15. package/dist/connection.js +4 -0
  16. package/dist/constants/defaults.d.ts +16 -0
  17. package/dist/constants/defaults.d.ts.map +1 -0
  18. package/dist/constants/defaults.js +15 -0
  19. package/dist/constants/hosts.d.ts +9 -0
  20. package/dist/constants/hosts.d.ts.map +1 -0
  21. package/dist/constants/hosts.js +25 -0
  22. package/dist/constants/page-limits.d.ts +15 -0
  23. package/dist/constants/page-limits.d.ts.map +1 -0
  24. package/dist/constants/page-limits.js +14 -0
  25. package/dist/errors.d.ts +42 -0
  26. package/dist/errors.d.ts.map +1 -0
  27. package/dist/errors.js +162 -0
  28. package/dist/http/query.d.ts +2 -0
  29. package/dist/http/query.d.ts.map +1 -0
  30. package/dist/http/query.js +10 -0
  31. package/dist/http/response.d.ts +12 -0
  32. package/dist/http/response.d.ts.map +1 -0
  33. package/dist/http/response.js +43 -0
  34. package/dist/http/security.d.ts +6 -0
  35. package/dist/http/security.d.ts.map +1 -0
  36. package/dist/http/security.js +29 -0
  37. package/dist/http/signals.d.ts +5 -0
  38. package/dist/http/signals.d.ts.map +1 -0
  39. package/dist/http/signals.js +26 -0
  40. package/dist/http.d.ts +12 -0
  41. package/dist/http.d.ts.map +1 -0
  42. package/dist/http.js +143 -0
  43. package/dist/index.d.ts +47 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +37 -0
  46. package/dist/invoice/api.d.ts +14 -0
  47. package/dist/invoice/api.d.ts.map +1 -0
  48. package/dist/invoice/api.js +12 -0
  49. package/dist/invoice/parse.d.ts +3 -0
  50. package/dist/invoice/parse.d.ts.map +1 -0
  51. package/dist/invoice/parse.js +12 -0
  52. package/dist/invoice/send-link.d.ts +9 -0
  53. package/dist/invoice/send-link.d.ts.map +1 -0
  54. package/dist/invoice/send-link.js +16 -0
  55. package/dist/invoice/soap-body.d.ts +6 -0
  56. package/dist/invoice/soap-body.d.ts.map +1 -0
  57. package/dist/invoice/soap-body.js +23 -0
  58. package/dist/invoice/validate.d.ts +7 -0
  59. package/dist/invoice/validate.d.ts.map +1 -0
  60. package/dist/invoice/validate.js +73 -0
  61. package/dist/logger.d.ts +20 -0
  62. package/dist/logger.d.ts.map +1 -0
  63. package/dist/logger.js +61 -0
  64. package/dist/orders/api.d.ts +22 -0
  65. package/dist/orders/api.d.ts.map +1 -0
  66. package/dist/orders/api.js +40 -0
  67. package/dist/orders/date.d.ts +12 -0
  68. package/dist/orders/date.d.ts.map +1 -0
  69. package/dist/orders/date.js +21 -0
  70. package/dist/orders/labor-cost.d.ts +9 -0
  71. package/dist/orders/labor-cost.d.ts.map +1 -0
  72. package/dist/orders/labor-cost.js +23 -0
  73. package/dist/orders/list.d.ts +23 -0
  74. package/dist/orders/list.d.ts.map +1 -0
  75. package/dist/orders/list.js +76 -0
  76. package/dist/orders/paths.d.ts +7 -0
  77. package/dist/orders/paths.d.ts.map +1 -0
  78. package/dist/orders/paths.js +6 -0
  79. package/dist/orders/reconciler.d.ts +30 -0
  80. package/dist/orders/reconciler.d.ts.map +1 -0
  81. package/dist/orders/reconciler.js +38 -0
  82. package/dist/orders/shipping.d.ts +11 -0
  83. package/dist/orders/shipping.d.ts.map +1 -0
  84. package/dist/orders/shipping.js +57 -0
  85. package/dist/orders/update.d.ts +15 -0
  86. package/dist/orders/update.d.ts.map +1 -0
  87. package/dist/orders/update.js +25 -0
  88. package/dist/products/api.d.ts +21 -0
  89. package/dist/products/api.d.ts.map +1 -0
  90. package/dist/products/api.js +35 -0
  91. package/dist/products/builder.d.ts +18 -0
  92. package/dist/products/builder.d.ts.map +1 -0
  93. package/dist/products/builder.js +138 -0
  94. package/dist/products/paths.d.ts +6 -0
  95. package/dist/products/paths.d.ts.map +1 -0
  96. package/dist/products/paths.js +5 -0
  97. package/dist/products/query.d.ts +9 -0
  98. package/dist/products/query.d.ts.map +1 -0
  99. package/dist/products/query.js +49 -0
  100. package/dist/products/tasks.d.ts +12 -0
  101. package/dist/products/tasks.d.ts.map +1 -0
  102. package/dist/products/tasks.js +49 -0
  103. package/dist/qna/answer.d.ts +10 -0
  104. package/dist/qna/answer.d.ts.map +1 -0
  105. package/dist/qna/answer.js +23 -0
  106. package/dist/qna/api.d.ts +17 -0
  107. package/dist/qna/api.d.ts.map +1 -0
  108. package/dist/qna/api.js +20 -0
  109. package/dist/qna/detail.d.ts +9 -0
  110. package/dist/qna/detail.d.ts.map +1 -0
  111. package/dist/qna/detail.js +18 -0
  112. package/dist/qna/list.d.ts +9 -0
  113. package/dist/qna/list.d.ts.map +1 -0
  114. package/dist/qna/list.js +16 -0
  115. package/dist/qna/parse.d.ts +6 -0
  116. package/dist/qna/parse.d.ts.map +1 -0
  117. package/dist/qna/parse.js +65 -0
  118. package/dist/qna/soap-body.d.ts +14 -0
  119. package/dist/qna/soap-body.d.ts.map +1 -0
  120. package/dist/qna/soap-body.js +48 -0
  121. package/dist/qna/validate.d.ts +7 -0
  122. package/dist/qna/validate.d.ts.map +1 -0
  123. package/dist/qna/validate.js +75 -0
  124. package/dist/rate-limit/governor.d.ts +8 -0
  125. package/dist/rate-limit/governor.d.ts.map +1 -0
  126. package/dist/rate-limit/governor.js +30 -0
  127. package/dist/rate-limit/groups.d.ts +34 -0
  128. package/dist/rate-limit/groups.d.ts.map +1 -0
  129. package/dist/rate-limit/groups.js +32 -0
  130. package/dist/retry.d.ts +5 -0
  131. package/dist/retry.d.ts.map +1 -0
  132. package/dist/retry.js +22 -0
  133. package/dist/returns/api.d.ts +21 -0
  134. package/dist/returns/api.d.ts.map +1 -0
  135. package/dist/returns/api.js +36 -0
  136. package/dist/returns/call.d.ts +2 -0
  137. package/dist/returns/call.d.ts.map +1 -0
  138. package/dist/returns/call.js +1 -0
  139. package/dist/returns/cancel-partial.d.ts +9 -0
  140. package/dist/returns/cancel-partial.d.ts.map +1 -0
  141. package/dist/returns/cancel-partial.js +18 -0
  142. package/dist/returns/list.d.ts +9 -0
  143. package/dist/returns/list.d.ts.map +1 -0
  144. package/dist/returns/list.js +16 -0
  145. package/dist/returns/mutations.d.ts +11 -0
  146. package/dist/returns/mutations.d.ts.map +1 -0
  147. package/dist/returns/mutations.js +22 -0
  148. package/dist/returns/parse.d.ts +6 -0
  149. package/dist/returns/parse.d.ts.map +1 -0
  150. package/dist/returns/parse.js +89 -0
  151. package/dist/returns/reasons.d.ts +11 -0
  152. package/dist/returns/reasons.d.ts.map +1 -0
  153. package/dist/returns/reasons.js +20 -0
  154. package/dist/returns/soap-body.d.ts +26 -0
  155. package/dist/returns/soap-body.d.ts.map +1 -0
  156. package/dist/returns/soap-body.js +95 -0
  157. package/dist/soap/call.d.ts +8 -0
  158. package/dist/soap/call.d.ts.map +1 -0
  159. package/dist/soap/call.js +22 -0
  160. package/dist/soap/client.d.ts +13 -0
  161. package/dist/soap/client.d.ts.map +1 -0
  162. package/dist/soap/client.js +125 -0
  163. package/dist/soap/envelope.d.ts +10 -0
  164. package/dist/soap/envelope.d.ts.map +1 -0
  165. package/dist/soap/envelope.js +47 -0
  166. package/dist/soap/operations.d.ts +6 -0
  167. package/dist/soap/operations.d.ts.map +1 -0
  168. package/dist/soap/operations.js +91 -0
  169. package/dist/soap/parse.d.ts +17 -0
  170. package/dist/soap/parse.d.ts.map +1 -0
  171. package/dist/soap/parse.js +37 -0
  172. package/dist/tasks/api.d.ts +11 -0
  173. package/dist/tasks/api.d.ts.map +1 -0
  174. package/dist/tasks/api.js +44 -0
  175. package/dist/tasks/module.d.ts +14 -0
  176. package/dist/tasks/module.d.ts.map +1 -0
  177. package/dist/tasks/module.js +15 -0
  178. package/dist/tasks/poller.d.ts +12 -0
  179. package/dist/tasks/poller.d.ts.map +1 -0
  180. package/dist/tasks/poller.js +133 -0
  181. package/dist/tasks/types.d.ts +27 -0
  182. package/dist/tasks/types.d.ts.map +1 -0
  183. package/dist/tasks/types.js +2 -0
  184. package/dist/testing/fixtures/category-leaf.json +11 -0
  185. package/dist/testing/fixtures/order-package.json +12 -0
  186. package/dist/testing/fixtures/task-partial-fail.json +18 -0
  187. package/dist/testing/fixtures.d.ts +76 -0
  188. package/dist/testing/fixtures.d.ts.map +1 -0
  189. package/dist/testing/fixtures.js +85 -0
  190. package/dist/testing/guard.d.ts +21 -0
  191. package/dist/testing/guard.d.ts.map +1 -0
  192. package/dist/testing/guard.js +50 -0
  193. package/dist/testing/index.d.ts +6 -0
  194. package/dist/testing/index.d.ts.map +1 -0
  195. package/dist/testing/index.js +4 -0
  196. package/dist/testing/mock-client.d.ts +49 -0
  197. package/dist/testing/mock-client.d.ts.map +1 -0
  198. package/dist/testing/mock-client.js +100 -0
  199. package/dist/types/invoice.d.ts +21 -0
  200. package/dist/types/invoice.d.ts.map +1 -0
  201. package/dist/types/invoice.js +1 -0
  202. package/dist/types/orders.d.ts +127 -0
  203. package/dist/types/orders.d.ts.map +1 -0
  204. package/dist/types/orders.js +1 -0
  205. package/dist/types/products.d.ts +146 -0
  206. package/dist/types/products.d.ts.map +1 -0
  207. package/dist/types/products.js +1 -0
  208. package/dist/types/qna.d.ts +61 -0
  209. package/dist/types/qna.d.ts.map +1 -0
  210. package/dist/types/qna.js +1 -0
  211. package/dist/types/returns.d.ts +96 -0
  212. package/dist/types/returns.d.ts.map +1 -0
  213. package/dist/types/returns.js +1 -0
  214. package/dist/types.d.ts +112 -0
  215. package/dist/types.d.ts.map +1 -0
  216. package/dist/types.js +1 -0
  217. package/dist/wire/normalize.d.ts +20 -0
  218. package/dist/wire/normalize.d.ts.map +1 -0
  219. package/dist/wire/normalize.js +158 -0
  220. package/dist/wire/validate.d.ts +6 -0
  221. package/dist/wire/validate.d.ts.map +1 -0
  222. package/dist/wire/validate.js +53 -0
  223. package/package.json +53 -0
@@ -0,0 +1,89 @@
1
+ import { extractXmlElements, extractXmlTag, parsePagingData, parseSoapResult } from "../soap/parse.js";
2
+ import { attachRaw } from "../wire/normalize.js";
3
+ const CLAIM_RETURN_FIELDS = [
4
+ "claimReturnId",
5
+ "status",
6
+ "executer",
7
+ "sender",
8
+ "orderNumber",
9
+ "productId",
10
+ "productName",
11
+ "quantity",
12
+ "unitPrice",
13
+ "finalPrice",
14
+ "requestDate",
15
+ "pendingRequestDate",
16
+ "pendedDate",
17
+ "cancelledDate",
18
+ "deniedDate",
19
+ "approvedDate",
20
+ "returnReasonType",
21
+ "returnReasonDescription",
22
+ "buyerEmail",
23
+ "buyerName",
24
+ "buyerPhone",
25
+ "sellerCampaignNumber",
26
+ "sellerTrackingNumber",
27
+ "sellerShipmentCompany",
28
+ "trackingNumber",
29
+ "shipmentCompany",
30
+ "shipmentMethod",
31
+ "campaignNumber",
32
+ "deliveryFeeType",
33
+ "paymentDate",
34
+ "attributesNames",
35
+ "skuId",
36
+ "bundleName",
37
+ ];
38
+ function parseClaimReturnFragment(fragment) {
39
+ const row = {};
40
+ for (const name of CLAIM_RETURN_FIELDS) {
41
+ const value = extractXmlTag(fragment, name);
42
+ if (value !== undefined) {
43
+ row[name] = value;
44
+ }
45
+ }
46
+ return attachRaw(row);
47
+ }
48
+ export function parseClaimReturnListResponse(xml) {
49
+ const fragments = extractXmlElements(xml, "claimReturn");
50
+ const pagingRaw = parsePagingData(xml);
51
+ return {
52
+ claimReturns: fragments.map(parseClaimReturnFragment),
53
+ paging: {
54
+ currentPage: pagingRaw.currentPage ? Number(pagingRaw.currentPage) : undefined,
55
+ pageSize: pagingRaw.pageSize ? Number(pagingRaw.pageSize) : undefined,
56
+ totalCount: pagingRaw.totalCount ? Number(pagingRaw.totalCount) : undefined,
57
+ pageCount: extractXmlTag(xml, "pageCount")
58
+ ? Number(extractXmlTag(xml, "pageCount"))
59
+ : undefined,
60
+ },
61
+ raw: { xmlSnippet: xml.slice(0, 500) },
62
+ };
63
+ }
64
+ export function parseReasonTypeListResponse(xml, listTag) {
65
+ const fragments = extractXmlElements(xml, listTag);
66
+ return {
67
+ items: fragments.map((fragment) => attachRaw({
68
+ id: extractXmlTag(fragment, "id"),
69
+ value: extractXmlTag(fragment, "value"),
70
+ })),
71
+ raw: { listTag },
72
+ };
73
+ }
74
+ export function parseSoapMutationResponse(xml) {
75
+ const result = parseSoapResult(xml);
76
+ return {
77
+ status: result.status,
78
+ raw: { status: result.status, errorMessage: result.errorMessage },
79
+ };
80
+ }
81
+ export function computeReturnListHasMore(paging, currentPage) {
82
+ if (paging?.pageCount !== undefined) {
83
+ return currentPage + 1 < paging.pageCount;
84
+ }
85
+ if (paging?.totalCount !== undefined && paging.pageSize !== undefined && paging.pageSize > 0) {
86
+ return (currentPage + 1) * paging.pageSize < paging.totalCount;
87
+ }
88
+ return false;
89
+ }
@@ -0,0 +1,11 @@
1
+ import type { N11SoapClient } from "../soap/client.js";
2
+ import type { N11Config, N11Result } from "../types.js";
3
+ import type { N11ReasonTypeListResponse } from "../types/returns.js";
4
+ type ReasonOptions = {
5
+ signal?: AbortSignal;
6
+ };
7
+ export declare function listDenyReasonTypes(soap: N11SoapClient, config: N11Config, options?: ReasonOptions): Promise<N11Result<N11ReasonTypeListResponse>>;
8
+ export declare function listPendingReasonTypes(soap: N11SoapClient, config: N11Config, options?: ReasonOptions): Promise<N11Result<N11ReasonTypeListResponse>>;
9
+ export declare function listCancelPartialReasonTypes(soap: N11SoapClient, config: N11Config, options?: ReasonOptions): Promise<N11Result<N11ReasonTypeListResponse>>;
10
+ export {};
11
+ //# sourceMappingURL=reasons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../../src/returns/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAKrE,KAAK,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAuB9C,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAS/C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAS/C;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAS/C"}
@@ -0,0 +1,20 @@
1
+ import { invokeSoapOperation } from "./call.js";
2
+ import { parseReasonTypeListResponse } from "./parse.js";
3
+ import { buildAuthOnlyRequestBody } from "./soap-body.js";
4
+ async function fetchReasonTypes(soap, config, operation, requestTag, listTag, options) {
5
+ const bodyXml = buildAuthOnlyRequestBody({ appKey: config.appKey, appSecret: config.appSecret }, requestTag);
6
+ const result = await invokeSoapOperation(soap, operation, bodyXml, options);
7
+ if (!result.ok) {
8
+ return result;
9
+ }
10
+ return { ok: true, data: parseReasonTypeListResponse(result.data, listTag) };
11
+ }
12
+ export function listDenyReasonTypes(soap, config, options) {
13
+ return fetchReasonTypes(soap, config, "ClaimReturnDenyReasonTypes", "ClaimReturnDenyReasonTypesRequest", "denyReasonTypeDataList", options);
14
+ }
15
+ export function listPendingReasonTypes(soap, config, options) {
16
+ return fetchReasonTypes(soap, config, "ClaimReturnPendingReasonTypes", "ClaimReturnPendingReasonTypesRequest", "pendingReasonTypeDataList", options);
17
+ }
18
+ export function listCancelPartialReasonTypes(soap, config, options) {
19
+ return fetchReasonTypes(soap, config, "ClaimCancelPartialReasonType", "ClaimCancelPartialReasonTypeRequest", "cancelReasonTypeDataList", options);
20
+ }
@@ -0,0 +1,26 @@
1
+ import type { N11ClaimCancelPartialParams, N11ClaimReturnApproveParams, N11ClaimReturnDenyParams, N11ClaimReturnListParams, N11ClaimReturnPendingParams } from "../types/returns.js";
2
+ export declare function buildClaimReturnListRequestBody(auth: {
3
+ appKey: string;
4
+ appSecret: string;
5
+ }, params?: N11ClaimReturnListParams): string;
6
+ export declare function buildAuthOnlyRequestBody(auth: {
7
+ appKey: string;
8
+ appSecret: string;
9
+ }, requestTag: string): string;
10
+ export declare function buildClaimReturnApproveRequestBody(auth: {
11
+ appKey: string;
12
+ appSecret: string;
13
+ }, params: N11ClaimReturnApproveParams): string;
14
+ export declare function buildClaimReturnPendingRequestBody(auth: {
15
+ appKey: string;
16
+ appSecret: string;
17
+ }, params: N11ClaimReturnPendingParams): string;
18
+ export declare function buildClaimReturnDenyRequestBody(auth: {
19
+ appKey: string;
20
+ appSecret: string;
21
+ }, params: N11ClaimReturnDenyParams): string;
22
+ export declare function buildClaimCancelPartialRequestBody(auth: {
23
+ appKey: string;
24
+ appSecret: string;
25
+ }, params: N11ClaimCancelPartialParams): string;
26
+ //# sourceMappingURL=soap-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soap-body.d.ts","sourceRoot":"","sources":["../../src/returns/soap-body.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAa7B,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,GAAE,wBAA6B,GACpC,MAAM,CAyBR;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3C,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE,2BAA2B,GAClC,MAAM,CAOR;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE,2BAA2B,GAClC,MAAM,CAUR;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAyBR;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE,2BAA2B,GAClC,MAAM,CAYR"}
@@ -0,0 +1,95 @@
1
+ import { buildAuthBlock, xmlEscape } from "../soap/envelope.js";
2
+ function field(name, value) {
3
+ if (value === undefined || value === null) {
4
+ return "";
5
+ }
6
+ return `<${name}>${xmlEscape(String(value))}</${name}>`;
7
+ }
8
+ function emptyField(name) {
9
+ return `<${name}></${name}>`;
10
+ }
11
+ export function buildClaimReturnListRequestBody(auth, params = {}) {
12
+ const period = params.period ?? {};
13
+ const searchData = [
14
+ field("status", params.status ?? "REQUESTED"),
15
+ params.executer !== undefined ? field("executer", params.executer) : emptyField("executer"),
16
+ params.searchInfoType !== undefined
17
+ ? field("searchInfoType", params.searchInfoType)
18
+ : emptyField("searchInfoType"),
19
+ params.searchQuery !== undefined ? field("searchQuery", params.searchQuery) : emptyField("searchQuery"),
20
+ params.sender !== undefined ? field("sender", params.sender) : emptyField("sender"),
21
+ "<period>",
22
+ period.startDate !== undefined ? field("startDate", period.startDate) : emptyField("startDate"),
23
+ period.endDate !== undefined ? field("endDate", period.endDate) : emptyField("endDate"),
24
+ "</period>",
25
+ ].join("");
26
+ const pagingData = field("currentPage", params.currentPage ?? 0);
27
+ return [
28
+ "<ClaimReturnListRequest>",
29
+ buildAuthBlock(auth.appKey, auth.appSecret),
30
+ `<searchData>${searchData}</searchData>`,
31
+ `<pagingData>${pagingData}</pagingData>`,
32
+ "</ClaimReturnListRequest>",
33
+ ].join("");
34
+ }
35
+ export function buildAuthOnlyRequestBody(auth, requestTag) {
36
+ return [`<${requestTag}>`, buildAuthBlock(auth.appKey, auth.appSecret), `</${requestTag}>`].join("");
37
+ }
38
+ export function buildClaimReturnApproveRequestBody(auth, params) {
39
+ return [
40
+ "<ClaimReturnApproveRequest>",
41
+ buildAuthBlock(auth.appKey, auth.appSecret),
42
+ field("claimReturnId", params.claimReturnId),
43
+ "</ClaimReturnApproveRequest>",
44
+ ].join("");
45
+ }
46
+ export function buildClaimReturnPendingRequestBody(auth, params) {
47
+ return [
48
+ "<ClaimReturnPendingRequest>",
49
+ buildAuthBlock(auth.appKey, auth.appSecret),
50
+ field("claimReturnId", params.claimReturnId),
51
+ field("pendingReasonId", params.pendingReasonId),
52
+ field("pendingDayCount", params.pendingDayCount),
53
+ field("pendingReasonNote", params.pendingReasonNote),
54
+ "</ClaimReturnPendingRequest>",
55
+ ].join("");
56
+ }
57
+ export function buildClaimReturnDenyRequestBody(auth, params) {
58
+ return [
59
+ "<ClaimReturnDenyRequest>",
60
+ buildAuthBlock(auth.appKey, auth.appSecret),
61
+ field("claimReturnId", params.claimReturnId),
62
+ field("denyReasonId", params.denyReasonId),
63
+ field("denyReasonNote", params.denyReasonNote),
64
+ params.returnShipmentType !== undefined
65
+ ? field("returnShipmentType", params.returnShipmentType)
66
+ : emptyField("returnShipmentType"),
67
+ params.shipmentCompanyId !== undefined
68
+ ? field("shipmentCompanyId", params.shipmentCompanyId)
69
+ : emptyField("shipmentCompanyId"),
70
+ params.trackingNumber !== undefined
71
+ ? field("trackingNumber", params.trackingNumber)
72
+ : emptyField("trackingNumber"),
73
+ params.deliveryReceiptNumber !== undefined
74
+ ? field("deliveryReceiptNumber", params.deliveryReceiptNumber)
75
+ : emptyField("deliveryReceiptNumber"),
76
+ params.imageFirstUrl !== undefined ? field("imageFirstUrl", params.imageFirstUrl) : emptyField("imageFirstUrl"),
77
+ params.imageSecondUrl !== undefined ? field("imageSecondUrl", params.imageSecondUrl) : emptyField("imageSecondUrl"),
78
+ params.imageThirdUrl !== undefined ? field("imageThirdUrl", params.imageThirdUrl) : emptyField("imageThirdUrl"),
79
+ params.videoUrl !== undefined ? field("videoUrl", params.videoUrl) : emptyField("videoUrl"),
80
+ "</ClaimReturnDenyRequest>",
81
+ ].join("");
82
+ }
83
+ export function buildClaimCancelPartialRequestBody(auth, params) {
84
+ return [
85
+ "<ClaimCancelPartialRequest>",
86
+ buildAuthBlock(auth.appKey, auth.appSecret),
87
+ field("orderItemId", params.orderItemId),
88
+ field("cancelQuantity", params.cancelQuantity),
89
+ field("cancelReasonTypeId", params.cancelReasonTypeId),
90
+ params.cancelReasonDescription !== undefined
91
+ ? field("cancelReasonDescription", params.cancelReasonDescription)
92
+ : "",
93
+ "</ClaimCancelPartialRequest>",
94
+ ].join("");
95
+ }
@@ -0,0 +1,8 @@
1
+ import type { N11SoapClient } from "./client.js";
2
+ import type { N11Result } from "../types.js";
3
+ type SoapInvokeOptions = {
4
+ signal?: AbortSignal;
5
+ };
6
+ export declare function invokeSoapOperation(soap: N11SoapClient, operation: string, bodyXml: string, options?: SoapInvokeOptions): Promise<N11Result<string>>;
7
+ export {};
8
+ //# sourceMappingURL=call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/soap/call.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,KAAK,iBAAiB,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAElD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAuB5B"}
@@ -0,0 +1,22 @@
1
+ import { findSoapOperation } from "./operations.js";
2
+ export async function invokeSoapOperation(soap, operation, bodyXml, options) {
3
+ const known = findSoapOperation(operation);
4
+ if (!known) {
5
+ return {
6
+ ok: false,
7
+ reason: `Bilinmeyen SOAP operasyonu: ${operation}`,
8
+ code: "UNKNOWN_SOAP_OPERATION",
9
+ };
10
+ }
11
+ const result = await soap.call({
12
+ wsdl: known.wsdl,
13
+ operation: known.operation,
14
+ endpoint: known.soapEndpoint,
15
+ bodyXml,
16
+ signal: options?.signal,
17
+ });
18
+ if (!result.ok) {
19
+ return result;
20
+ }
21
+ return { ok: true, data: result.data.rawBody };
22
+ }
@@ -0,0 +1,13 @@
1
+ import type { N11Config, N11Hooks, N11Result, SoapCallOptions, SoapCallResult } from "../types.js";
2
+ import { RateLimitGovernor } from "../rate-limit/governor.js";
3
+ export declare class N11SoapClient {
4
+ private readonly config;
5
+ private readonly governor?;
6
+ private hooks;
7
+ constructor(config: N11Config, governor?: RateLimitGovernor | undefined);
8
+ setHooks(hooks: N11Hooks): void;
9
+ getHooks(): N11Hooks;
10
+ /** Faz 0 iskelet — envelope + fetch lifecycle + minimal failure parse. */
11
+ call(options: SoapCallOptions): Promise<N11Result<SoapCallResult>>;
12
+ }
13
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/soap/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAJ5B,OAAO,CAAC,KAAK,CAAgB;gBAGV,MAAM,EAAE,SAAS,EACjB,QAAQ,CAAC,EAAE,iBAAiB,YAAA;IAG/C,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B,QAAQ,IAAI,QAAQ;IAIpB,0EAA0E;IACpE,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;CAyHzE"}
@@ -0,0 +1,125 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { N11_CORRELATION_HEADER } from "../constants/defaults.js";
3
+ import { parseSoapFailure, toFailure, N11TransportError } from "../errors.js";
4
+ import { buildHttpObservabilityMeta, n11Log } from "../logger.js";
5
+ import { computeRetryDelayMs, shouldRetryStatus, sleep } from "../retry.js";
6
+ import { buildSoapEnvelope, soapActionHeader, wrapSoapEnvelope, } from "./envelope.js";
7
+ import { combineAbortSignals } from "../http/signals.js";
8
+ import { isSoapFailure } from "./parse.js";
9
+ import { findSoapOperation } from "./operations.js";
10
+ export class N11SoapClient {
11
+ config;
12
+ governor;
13
+ hooks = {};
14
+ constructor(config, governor) {
15
+ this.config = config;
16
+ this.governor = governor;
17
+ }
18
+ setHooks(hooks) {
19
+ this.hooks = hooks;
20
+ }
21
+ getHooks() {
22
+ return this.hooks;
23
+ }
24
+ /** Faz 0 iskelet — envelope + fetch lifecycle + minimal failure parse. */
25
+ async call(options) {
26
+ const known = findSoapOperation(options.operation);
27
+ const endpoint = options.endpoint || known?.soapEndpoint;
28
+ if (!endpoint) {
29
+ return {
30
+ ok: false,
31
+ reason: `Bilinmeyen SOAP operasyonu: ${options.operation}`,
32
+ code: "UNKNOWN_SOAP_OPERATION",
33
+ };
34
+ }
35
+ const envelope = options.bodyXml
36
+ ? wrapSoapEnvelope(options.bodyXml)
37
+ : buildSoapEnvelope(options.operation, options.bodyFields ?? {}, {
38
+ appKey: this.config.appKey,
39
+ appSecret: this.config.appSecret,
40
+ });
41
+ if (envelope.length > this.config.maxSoapBodyBytes) {
42
+ return {
43
+ ok: false,
44
+ reason: "SOAP govde boyutu limiti asildi.",
45
+ code: "SOAP_BODY_TOO_LARGE",
46
+ };
47
+ }
48
+ const retryPolicy = options.retryPolicy ?? "none";
49
+ const maxAttempts = retryPolicy === "safe" ? this.config.maxRetries + 1 : 1;
50
+ const correlationId = randomUUID();
51
+ if (this.config.enableClientSideLimiter && this.governor) {
52
+ const waitMs = await this.governor.acquire(endpoint);
53
+ if (waitMs > 0) {
54
+ this.hooks.onRateLimitHit?.({ retryAfterMs: waitMs, resource: "soap" });
55
+ }
56
+ }
57
+ for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
58
+ const started = Date.now();
59
+ const timeoutSignal = AbortSignal.timeout(this.config.requestTimeoutMs);
60
+ const signal = combineAbortSignals(timeoutSignal, options.signal);
61
+ try {
62
+ n11Log(this.config.debug, "debug", "SOAP istegi", buildHttpObservabilityMeta({
63
+ correlationId,
64
+ resource: "soap",
65
+ method: "POST",
66
+ path: options.operation,
67
+ host: new URL(endpoint).host,
68
+ transport: "soap",
69
+ operation: options.operation,
70
+ retryCount: attempt > 0 ? attempt : undefined,
71
+ }));
72
+ const response = await fetch(endpoint, {
73
+ method: "POST",
74
+ headers: {
75
+ "Content-Type": "text/xml; charset=utf-8",
76
+ SOAPAction: soapActionHeader(options.operation),
77
+ [N11_CORRELATION_HEADER]: correlationId,
78
+ },
79
+ body: envelope,
80
+ signal,
81
+ });
82
+ const rawBody = await response.text();
83
+ const durationMs = Date.now() - started;
84
+ this.hooks.onSoapCall?.({
85
+ correlationId,
86
+ operation: options.operation,
87
+ durationMs,
88
+ status: response.status,
89
+ });
90
+ if (!response.ok &&
91
+ shouldRetryStatus(response.status, retryPolicy) &&
92
+ attempt < maxAttempts - 1) {
93
+ await sleep(computeRetryDelayMs(this.config, attempt, response.headers.get("retry-after")));
94
+ continue;
95
+ }
96
+ if (!response.ok) {
97
+ return toFailure(parseSoapFailure(rawBody, response.status));
98
+ }
99
+ if (isSoapFailure(rawBody)) {
100
+ return toFailure(parseSoapFailure(rawBody, response.status));
101
+ }
102
+ return {
103
+ ok: true,
104
+ data: { rawBody, status: response.status },
105
+ };
106
+ }
107
+ catch (error) {
108
+ const retryable = retryPolicy === "safe" &&
109
+ attempt < maxAttempts - 1 &&
110
+ (error instanceof Error
111
+ ? error.name === "AbortError" || error.name === "TimeoutError"
112
+ : false);
113
+ if (retryable) {
114
+ await sleep(computeRetryDelayMs(this.config, attempt));
115
+ continue;
116
+ }
117
+ const transport = error instanceof Error
118
+ ? new N11TransportError(error.message, { retryable: false })
119
+ : new N11TransportError("SOAP transport hatasi.", { retryable: false });
120
+ return toFailure(transport);
121
+ }
122
+ }
123
+ return toFailure(new N11TransportError("SOAP istegi tamamlanamadi.", { retryable: false }));
124
+ }
125
+ }
@@ -0,0 +1,10 @@
1
+ export declare function xmlEscape(value: string): string;
2
+ export declare function buildAuthBlock(appKey: string, appSecret: string): string;
3
+ export declare function buildSoapBody(operation: string, fields: Record<string, string | number | boolean | null | undefined>, authXml: string): string;
4
+ export declare function wrapSoapEnvelope(operationBody: string): string;
5
+ export declare function buildSoapEnvelope(operation: string, fields: Record<string, string | number | boolean | null | undefined>, auth: {
6
+ appKey: string;
7
+ appSecret: string;
8
+ }): string;
9
+ export declare function soapActionHeader(operation: string): string;
10
+ //# sourceMappingURL=envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/soap/envelope.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOxE;AASD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EACpE,OAAO,EAAE,MAAM,GACd,MAAM,CAKR;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAS9D;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EACpE,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1C,MAAM,CAIR;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,47 @@
1
+ const SOAP_ENVELOPE_NS = "http://schemas.xmlsoap.org/soap/envelope/";
2
+ export function xmlEscape(value) {
3
+ return value
4
+ .replaceAll("&", "&amp;")
5
+ .replaceAll("<", "&lt;")
6
+ .replaceAll(">", "&gt;")
7
+ .replaceAll('"', "&quot;")
8
+ .replaceAll("'", "&apos;");
9
+ }
10
+ export function buildAuthBlock(appKey, appSecret) {
11
+ return [
12
+ "<auth>",
13
+ `<appKey>${xmlEscape(appKey)}</appKey>`,
14
+ `<appSecret>${xmlEscape(appSecret)}</appSecret>`,
15
+ "</auth>",
16
+ ].join("");
17
+ }
18
+ function serializeField(name, value) {
19
+ if (value === undefined || value === null) {
20
+ return "";
21
+ }
22
+ return `<${name}>${xmlEscape(String(value))}</${name}>`;
23
+ }
24
+ export function buildSoapBody(operation, fields, authXml) {
25
+ const inner = Object.entries(fields)
26
+ .map(([name, value]) => serializeField(name, value))
27
+ .join("");
28
+ return `<${operation}>${authXml}${inner}</${operation}>`;
29
+ }
30
+ export function wrapSoapEnvelope(operationBody) {
31
+ return [
32
+ '<?xml version="1.0" encoding="utf-8"?>',
33
+ `<soap:Envelope xmlns:soap="${SOAP_ENVELOPE_NS}">`,
34
+ "<soap:Body>",
35
+ operationBody,
36
+ "</soap:Body>",
37
+ "</soap:Envelope>",
38
+ ].join("");
39
+ }
40
+ export function buildSoapEnvelope(operation, fields, auth) {
41
+ const authXml = buildAuthBlock(auth.appKey, auth.appSecret);
42
+ const body = buildSoapBody(operation, fields, authXml);
43
+ return wrapSoapEnvelope(body);
44
+ }
45
+ export function soapActionHeader(operation) {
46
+ return operation;
47
+ }
@@ -0,0 +1,6 @@
1
+ import type { SoapOperationDef } from "../types.js";
2
+ /** G3 gate snapshot — 12 in-scope SOAP operasyon. */
3
+ export declare const SOAP_OPERATIONS: SoapOperationDef[];
4
+ export declare function findSoapOperation(operation: string): SoapOperationDef | undefined;
5
+ export declare const SOAP_OPERATION_COUNT: number;
6
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/soap/operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qDAAqD;AACrD,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAqF7C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEjF;AAED,eAAO,MAAM,oBAAoB,QAAyB,CAAC"}
@@ -0,0 +1,91 @@
1
+ /** G3 gate snapshot — 12 in-scope SOAP operasyon. */
2
+ export const SOAP_OPERATIONS = [
3
+ {
4
+ wsdl: "ReturnService.wsdl",
5
+ wsdlUrl: "https://api.n11.com/ws/ReturnService.wsdl",
6
+ soapEndpoint: "https://api.n11.com/ws/returnService/",
7
+ operation: "ClaimReturnList",
8
+ faz: 3,
9
+ },
10
+ {
11
+ wsdl: "ReturnService.wsdl",
12
+ wsdlUrl: "https://api.n11.com/ws/ReturnService.wsdl",
13
+ soapEndpoint: "https://api.n11.com/ws/returnService/",
14
+ operation: "ClaimReturnDenyReasonTypes",
15
+ faz: 3,
16
+ },
17
+ {
18
+ wsdl: "ReturnService.wsdl",
19
+ wsdlUrl: "https://api.n11.com/ws/ReturnService.wsdl",
20
+ soapEndpoint: "https://api.n11.com/ws/returnService/",
21
+ operation: "ClaimReturnPendingReasonTypes",
22
+ faz: 3,
23
+ },
24
+ {
25
+ wsdl: "ReturnService.wsdl",
26
+ wsdlUrl: "https://api.n11.com/ws/ReturnService.wsdl",
27
+ soapEndpoint: "https://api.n11.com/ws/returnService/",
28
+ operation: "ClaimReturnApprove",
29
+ faz: 3,
30
+ },
31
+ {
32
+ wsdl: "ReturnService.wsdl",
33
+ wsdlUrl: "https://api.n11.com/ws/ReturnService.wsdl",
34
+ soapEndpoint: "https://api.n11.com/ws/returnService/",
35
+ operation: "ClaimReturnPending",
36
+ faz: 3,
37
+ },
38
+ {
39
+ wsdl: "ReturnService.wsdl",
40
+ wsdlUrl: "https://api.n11.com/ws/ReturnService.wsdl",
41
+ soapEndpoint: "https://api.n11.com/ws/returnService/",
42
+ operation: "ClaimReturnDeny",
43
+ faz: 3,
44
+ },
45
+ {
46
+ wsdl: "ClaimCancelService.wsdl",
47
+ wsdlUrl: "https://api.n11.com/ws/ClaimCancelService.wsdl",
48
+ soapEndpoint: "https://api.n11.com/ws/claimCancelService/",
49
+ operation: "ClaimCancelPartial",
50
+ faz: 3,
51
+ },
52
+ {
53
+ wsdl: "ClaimCancelService.wsdl",
54
+ wsdlUrl: "https://api.n11.com/ws/ClaimCancelService.wsdl",
55
+ soapEndpoint: "https://api.n11.com/ws/claimCancelService/",
56
+ operation: "ClaimCancelPartialReasonType",
57
+ faz: 3,
58
+ },
59
+ {
60
+ wsdl: "SellerInvoiceService.wsdl",
61
+ wsdlUrl: "https://api.n11.com/ws/SellerInvoiceService.wsdl",
62
+ soapEndpoint: "https://api.n11.com/ws/sellerInvoiceService/",
63
+ operation: "SaveLinkSellerInvoice",
64
+ faz: 4,
65
+ },
66
+ {
67
+ wsdl: "productService.wsdl",
68
+ wsdlUrl: "https://api.n11.com/ws/productService.wsdl",
69
+ soapEndpoint: "https://api.n11.com/ws/productService/",
70
+ operation: "GetProductQuestionList",
71
+ faz: 4,
72
+ },
73
+ {
74
+ wsdl: "productService.wsdl",
75
+ wsdlUrl: "https://api.n11.com/ws/productService.wsdl",
76
+ soapEndpoint: "https://api.n11.com/ws/productService/",
77
+ operation: "GetProductQuestionDetail",
78
+ faz: 4,
79
+ },
80
+ {
81
+ wsdl: "productService.wsdl",
82
+ wsdlUrl: "https://api.n11.com/ws/productService.wsdl",
83
+ soapEndpoint: "https://api.n11.com/ws/productService/",
84
+ operation: "SaveProductAnswer",
85
+ faz: 4,
86
+ },
87
+ ];
88
+ export function findSoapOperation(operation) {
89
+ return SOAP_OPERATIONS.find((entry) => entry.operation === operation);
90
+ }
91
+ export const SOAP_OPERATION_COUNT = SOAP_OPERATIONS.length;
@@ -0,0 +1,17 @@
1
+ /** SOAP response govdesinden tag icerigi cikarir (namespace-duyarsiz). */
2
+ export declare function extractXmlTag(xml: string, tagName: string): string | undefined;
3
+ /** Tekrarlayan sibling elementleri parse eder. */
4
+ export declare function extractXmlElements(xml: string, tagName: string): string[];
5
+ export type SoapResultWire = {
6
+ status?: string;
7
+ errorMessage?: string;
8
+ };
9
+ export declare function parseSoapResult(xml: string): SoapResultWire;
10
+ export declare function parsePagingData(xml: string): {
11
+ currentPage?: string;
12
+ pageSize?: string;
13
+ totalCount?: string;
14
+ };
15
+ export declare function isSoapFailure(xml: string): boolean;
16
+ export declare function extractSoapFaultString(xml: string): string | undefined;
17
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/soap/parse.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO9E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzE;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAK3D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAOA;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEtE"}