n8n-nodes-ups 0.2.2

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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/dist/credentials/UpsOAuth2Api.credentials.d.ts +10 -0
  4. package/dist/credentials/UpsOAuth2Api.credentials.js +76 -0
  5. package/dist/credentials/UpsOAuth2Api.credentials.js.map +1 -0
  6. package/dist/credentials/ups.svg +5 -0
  7. package/dist/nodes/Ups/Ups.node.d.ts +4 -0
  8. package/dist/nodes/Ups/Ups.node.js +53 -0
  9. package/dist/nodes/Ups/Ups.node.js.map +1 -0
  10. package/dist/nodes/Ups/Ups.node.json +18 -0
  11. package/dist/nodes/Ups/core/buildCommodities.d.ts +10 -0
  12. package/dist/nodes/Ups/core/buildCommodities.js +21 -0
  13. package/dist/nodes/Ups/core/buildCommodities.js.map +1 -0
  14. package/dist/nodes/Ups/core/buildInternationalForms.d.ts +17 -0
  15. package/dist/nodes/Ups/core/buildInternationalForms.js +34 -0
  16. package/dist/nodes/Ups/core/buildInternationalForms.js.map +1 -0
  17. package/dist/nodes/Ups/core/extractCharges.d.ts +20 -0
  18. package/dist/nodes/Ups/core/extractCharges.js +13 -0
  19. package/dist/nodes/Ups/core/extractCharges.js.map +1 -0
  20. package/dist/nodes/Ups/core/extractForms.d.ts +23 -0
  21. package/dist/nodes/Ups/core/extractForms.js +25 -0
  22. package/dist/nodes/Ups/core/extractForms.js.map +1 -0
  23. package/dist/nodes/Ups/core/extractLabel.d.ts +30 -0
  24. package/dist/nodes/Ups/core/extractLabel.js +35 -0
  25. package/dist/nodes/Ups/core/extractLabel.js.map +1 -0
  26. package/dist/nodes/Ups/core/flattenRates.d.ts +36 -0
  27. package/dist/nodes/Ups/core/flattenRates.js +58 -0
  28. package/dist/nodes/Ups/core/flattenRates.js.map +1 -0
  29. package/dist/nodes/Ups/core/isInternational.d.ts +9 -0
  30. package/dist/nodes/Ups/core/isInternational.js +15 -0
  31. package/dist/nodes/Ups/core/isInternational.js.map +1 -0
  32. package/dist/nodes/Ups/core/mapTrackStatus.d.ts +48 -0
  33. package/dist/nodes/Ups/core/mapTrackStatus.js +55 -0
  34. package/dist/nodes/Ups/core/mapTrackStatus.js.map +1 -0
  35. package/dist/nodes/Ups/core/mapUpsError.d.ts +2 -0
  36. package/dist/nodes/Ups/core/mapUpsError.js +52 -0
  37. package/dist/nodes/Ups/core/mapUpsError.js.map +1 -0
  38. package/dist/nodes/Ups/core/shapeCandidates.d.ts +37 -0
  39. package/dist/nodes/Ups/core/shapeCandidates.js +68 -0
  40. package/dist/nodes/Ups/core/shapeCandidates.js.map +1 -0
  41. package/dist/nodes/Ups/core/toMoney.d.ts +6 -0
  42. package/dist/nodes/Ups/core/toMoney.js +16 -0
  43. package/dist/nodes/Ups/core/toMoney.js.map +1 -0
  44. package/dist/nodes/Ups/core/toUpsAddress.d.ts +12 -0
  45. package/dist/nodes/Ups/core/toUpsAddress.js +17 -0
  46. package/dist/nodes/Ups/core/toUpsAddress.js.map +1 -0
  47. package/dist/nodes/Ups/core/toXavAddress.d.ts +16 -0
  48. package/dist/nodes/Ups/core/toXavAddress.js +26 -0
  49. package/dist/nodes/Ups/core/toXavAddress.js.map +1 -0
  50. package/dist/nodes/Ups/core/types.d.ts +73 -0
  51. package/dist/nodes/Ups/core/types.js +3 -0
  52. package/dist/nodes/Ups/core/types.js.map +1 -0
  53. package/dist/nodes/Ups/resources/address/index.d.ts +2 -0
  54. package/dist/nodes/Ups/resources/address/index.js +20 -0
  55. package/dist/nodes/Ups/resources/address/index.js.map +1 -0
  56. package/dist/nodes/Ups/resources/address/validate.operation.d.ts +24 -0
  57. package/dist/nodes/Ups/resources/address/validate.operation.js +109 -0
  58. package/dist/nodes/Ups/resources/address/validate.operation.js.map +1 -0
  59. package/dist/nodes/Ups/resources/shipping/create.operation.d.ts +24 -0
  60. package/dist/nodes/Ups/resources/shipping/create.operation.js +363 -0
  61. package/dist/nodes/Ups/resources/shipping/create.operation.js.map +1 -0
  62. package/dist/nodes/Ups/resources/shipping/getRates.operation.d.ts +24 -0
  63. package/dist/nodes/Ups/resources/shipping/getRates.operation.js +126 -0
  64. package/dist/nodes/Ups/resources/shipping/getRates.operation.js.map +1 -0
  65. package/dist/nodes/Ups/resources/shipping/index.d.ts +2 -0
  66. package/dist/nodes/Ups/resources/shipping/index.js +22 -0
  67. package/dist/nodes/Ups/resources/shipping/index.js.map +1 -0
  68. package/dist/nodes/Ups/resources/shipping/shared.d.ts +34 -0
  69. package/dist/nodes/Ups/resources/shipping/shared.js +165 -0
  70. package/dist/nodes/Ups/resources/shipping/shared.js.map +1 -0
  71. package/dist/nodes/Ups/resources/tracking/index.d.ts +2 -0
  72. package/dist/nodes/Ups/resources/tracking/index.js +20 -0
  73. package/dist/nodes/Ups/resources/tracking/index.js.map +1 -0
  74. package/dist/nodes/Ups/resources/tracking/track.operation.d.ts +24 -0
  75. package/dist/nodes/Ups/resources/tracking/track.operation.js +73 -0
  76. package/dist/nodes/Ups/resources/tracking/track.operation.js.map +1 -0
  77. package/dist/nodes/Ups/ups.dark.svg +13 -0
  78. package/dist/nodes/Ups/ups.svg +13 -0
  79. package/dist/package.json +61 -0
  80. package/package.json +61 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flattenRates = flattenRates;
4
+ const toMoney_1 = require("./toMoney");
5
+ const NO_NEGOTIATED_ALERT = 'No negotiated rates were returned. Confirm your account number is enabled for negotiated rates.';
6
+ function toArray(value) {
7
+ if (value === undefined || value === null)
8
+ return [];
9
+ return Array.isArray(value) ? value : [value];
10
+ }
11
+ function alertText(alert) {
12
+ var _a, _b;
13
+ return (_b = (_a = alert.Description) !== null && _a !== void 0 ? _a : alert.Code) !== null && _b !== void 0 ? _b : '';
14
+ }
15
+ function parseTransitDays(value) {
16
+ if (value === undefined || value === '')
17
+ return null;
18
+ const n = Number.parseInt(value, 10);
19
+ return Number.isNaN(n) ? null : n;
20
+ }
21
+ function flattenRates(response, options) {
22
+ var _a;
23
+ const rate = response.RateResponse;
24
+ const shipments = toArray(rate === null || rate === void 0 ? void 0 : rate.RatedShipment);
25
+ const lines = shipments.map((shipment) => {
26
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
27
+ const published = (_a = (0, toMoney_1.toMoney)(shipment.TotalCharges)) !== null && _a !== void 0 ? _a : { amount: '0', currency: 'USD' };
28
+ return {
29
+ serviceCode: (_c = (_b = shipment.Service) === null || _b === void 0 ? void 0 : _b.Code) !== null && _c !== void 0 ? _c : '',
30
+ serviceName: (_e = (_d = shipment.Service) === null || _d === void 0 ? void 0 : _d.Description) !== null && _e !== void 0 ? _e : '',
31
+ negotiated: (0, toMoney_1.toMoney)((_f = shipment.NegotiatedRateCharges) === null || _f === void 0 ? void 0 : _f.TotalCharge),
32
+ published,
33
+ billingWeight: (_h = (_g = shipment.BillingWeight) === null || _g === void 0 ? void 0 : _g.Weight) !== null && _h !== void 0 ? _h : null,
34
+ transitDays: options.wantTransit
35
+ ? parseTransitDays((_j = shipment.GuaranteedDelivery) === null || _j === void 0 ? void 0 : _j.BusinessDaysInTransit)
36
+ : null,
37
+ guaranteedBy: options.wantTransit
38
+ ? ((_l = (_k = shipment.GuaranteedDelivery) === null || _k === void 0 ? void 0 : _k.DeliveryByTime) !== null && _l !== void 0 ? _l : null)
39
+ : null,
40
+ alerts: toArray(shipment.RatedShipmentAlert)
41
+ .map(alertText)
42
+ .filter((a) => a.length > 0),
43
+ };
44
+ });
45
+ if (lines.length === 0)
46
+ return lines;
47
+ const requestAlerts = toArray((_a = rate === null || rate === void 0 ? void 0 : rate.Response) === null || _a === void 0 ? void 0 : _a.Alert)
48
+ .map(alertText)
49
+ .filter((a) => a.length > 0);
50
+ if (requestAlerts.length > 0) {
51
+ lines[0].alerts = [...lines[0].alerts, ...requestAlerts];
52
+ }
53
+ if (lines.every((l) => l.negotiated === null)) {
54
+ lines[0].alerts = [...lines[0].alerts, NO_NEGOTIATED_ALERT];
55
+ }
56
+ return lines;
57
+ }
58
+ //# sourceMappingURL=flattenRates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flattenRates.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/flattenRates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface CountryRef {
2
+ countryCode?: string;
3
+ }
4
+ export interface InternationalInput {
5
+ shipFrom?: CountryRef;
6
+ shipper: CountryRef;
7
+ shipTo: CountryRef;
8
+ }
9
+ export declare function isInternational(input: InternationalInput): boolean;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isInternational = isInternational;
4
+ function normalize(code) {
5
+ return (code !== null && code !== void 0 ? code : '').trim().toUpperCase();
6
+ }
7
+ function isInternational(input) {
8
+ var _a, _b, _c;
9
+ const origin = normalize((_a = input.shipFrom) === null || _a === void 0 ? void 0 : _a.countryCode) || normalize((_b = input.shipper) === null || _b === void 0 ? void 0 : _b.countryCode);
10
+ const destination = normalize((_c = input.shipTo) === null || _c === void 0 ? void 0 : _c.countryCode);
11
+ if (!origin || !destination)
12
+ return false;
13
+ return origin !== destination;
14
+ }
15
+ //# sourceMappingURL=isInternational.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isInternational.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/isInternational.ts"],"names":[],"mappings":";;AAkBA,0CAMC;AAVD,SAAS,SAAS,CAAC,IAAwB;IAC1C,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1C,CAAC;AAED,SAAgB,eAAe,CAAC,KAAyB;;IACxD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,WAAW,CAAC,IAAI,SAAS,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,WAAW,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,SAAS,CAAC,MAAA,KAAK,CAAC,MAAM,0CAAE,WAAW,CAAC,CAAC;IAEzD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,MAAM,KAAK,WAAW,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { TrackResult } from './types';
2
+ export type TrackDetail = 'detailed' | 'status';
3
+ interface RawAddress {
4
+ city?: string;
5
+ stateProvince?: string;
6
+ countryCode?: string;
7
+ country?: string;
8
+ }
9
+ interface RawStatus {
10
+ type?: string;
11
+ code?: string;
12
+ statusCode?: string;
13
+ description?: string;
14
+ }
15
+ interface RawActivity {
16
+ date?: string;
17
+ time?: string;
18
+ status?: RawStatus;
19
+ location?: {
20
+ address?: RawAddress;
21
+ };
22
+ }
23
+ interface RawPackage {
24
+ trackingNumber?: string;
25
+ currentStatus?: RawStatus;
26
+ service?: {
27
+ code?: string;
28
+ description?: string;
29
+ };
30
+ deliveryDate?: Array<{
31
+ type?: string;
32
+ date?: string;
33
+ }>;
34
+ activity?: RawActivity[];
35
+ }
36
+ interface RawShipment {
37
+ inquiryNumber?: string;
38
+ package?: RawPackage[];
39
+ }
40
+ interface TrackResponse {
41
+ trackResponse?: {
42
+ shipment?: RawShipment[];
43
+ };
44
+ }
45
+ export declare function mapTrackStatus(response: TrackResponse, options: {
46
+ detail: TrackDetail;
47
+ }): TrackResult[];
48
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapTrackStatus = mapTrackStatus;
4
+ function formatLocation(address) {
5
+ var _a;
6
+ if (!address)
7
+ return undefined;
8
+ const parts = [
9
+ address.city,
10
+ address.stateProvince,
11
+ (_a = address.countryCode) !== null && _a !== void 0 ? _a : address.country,
12
+ ].filter((p) => Boolean(p));
13
+ return parts.length > 0 ? parts.join(', ') : undefined;
14
+ }
15
+ function mapActivity(raw) {
16
+ var _a, _b, _c, _d;
17
+ return {
18
+ date: raw.date,
19
+ time: raw.time,
20
+ statusType: (_a = raw.status) === null || _a === void 0 ? void 0 : _a.type,
21
+ statusCode: (_b = raw.status) === null || _b === void 0 ? void 0 : _b.code,
22
+ statusDescription: (_c = raw.status) === null || _c === void 0 ? void 0 : _c.description,
23
+ location: formatLocation((_d = raw.location) === null || _d === void 0 ? void 0 : _d.address),
24
+ };
25
+ }
26
+ function pickDeliveryDate(pkg) {
27
+ if (!Array.isArray(pkg.deliveryDate) || pkg.deliveryDate.length === 0)
28
+ return undefined;
29
+ const delivered = pkg.deliveryDate.find((d) => d.type === 'DEL');
30
+ return (delivered !== null && delivered !== void 0 ? delivered : pkg.deliveryDate[pkg.deliveryDate.length - 1]).date;
31
+ }
32
+ function mapTrackStatus(response, options) {
33
+ var _a, _b, _c, _d, _e, _f;
34
+ const shipments = (_b = (_a = response.trackResponse) === null || _a === void 0 ? void 0 : _a.shipment) !== null && _b !== void 0 ? _b : [];
35
+ const results = [];
36
+ for (const shipment of shipments) {
37
+ for (const pkg of (_c = shipment.package) !== null && _c !== void 0 ? _c : []) {
38
+ const status = pkg.currentStatus;
39
+ const result = {
40
+ trackingNumber: (_e = (_d = pkg.trackingNumber) !== null && _d !== void 0 ? _d : shipment.inquiryNumber) !== null && _e !== void 0 ? _e : '',
41
+ statusType: status === null || status === void 0 ? void 0 : status.type,
42
+ statusCode: status === null || status === void 0 ? void 0 : status.code,
43
+ statusDescription: status === null || status === void 0 ? void 0 : status.description,
44
+ deliveryDate: pickDeliveryDate(pkg),
45
+ service: (_f = pkg.service) === null || _f === void 0 ? void 0 : _f.description,
46
+ };
47
+ if (options.detail === 'detailed' && Array.isArray(pkg.activity) && pkg.activity.length > 0) {
48
+ result.activity = pkg.activity.map(mapActivity);
49
+ }
50
+ results.push(result);
51
+ }
52
+ }
53
+ return results;
54
+ }
55
+ //# sourceMappingURL=mapTrackStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapTrackStatus.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/mapTrackStatus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { INode } from 'n8n-workflow';
2
+ export declare function mapUpsError(node: INode, responseData: unknown, statusCode: number): never;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapUpsError = mapUpsError;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ function extractErrors(responseData) {
6
+ if (responseData === null || typeof responseData !== 'object')
7
+ return [];
8
+ const data = responseData;
9
+ const response = data.response;
10
+ if (response && Array.isArray(response.errors)) {
11
+ return response.errors;
12
+ }
13
+ const capitalized = data.Response;
14
+ const nested = capitalized === null || capitalized === void 0 ? void 0 : capitalized.response;
15
+ if (nested && Array.isArray(nested.errors)) {
16
+ return nested.errors;
17
+ }
18
+ if (Array.isArray(data.errors)) {
19
+ return data.errors;
20
+ }
21
+ return [];
22
+ }
23
+ function classify(statusCode) {
24
+ if (statusCode === 401 || statusCode === 403)
25
+ return 'auth';
26
+ if (statusCode === 429 || statusCode >= 500)
27
+ return 'transient';
28
+ return 'input';
29
+ }
30
+ const CLASS_PREFIX = {
31
+ auth: 'UPS authentication failed',
32
+ input: 'UPS rejected the request (invalid input)',
33
+ transient: 'UPS is temporarily unavailable — try again',
34
+ };
35
+ function mapUpsError(node, responseData, statusCode) {
36
+ const errors = extractErrors(responseData);
37
+ const cls = classify(statusCode);
38
+ const prefix = CLASS_PREFIX[cls];
39
+ const detail = errors.length > 0
40
+ ? errors
41
+ .map((e) => { var _a, _b; return `${(_a = e.code) !== null && _a !== void 0 ? _a : 'UNKNOWN'}: ${(_b = e.message) !== null && _b !== void 0 ? _b : 'No message provided by UPS'}`; })
42
+ .join('; ')
43
+ : 'No structured error was returned by UPS.';
44
+ const message = `${prefix} — ${detail}`;
45
+ throw new n8n_workflow_1.NodeApiError(node, (responseData !== null && responseData !== void 0 ? responseData : {}), {
46
+ message,
47
+ description: detail,
48
+ httpCode: String(statusCode),
49
+ level: cls === 'transient' ? 'warning' : 'error',
50
+ });
51
+ }
52
+ //# sourceMappingURL=mapUpsError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapUpsError.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/mapUpsError.ts"],"names":[],"mappings":";;AA0DA,kCAqBC;AA/ED,+CAA4C;AAkB5C,SAAS,aAAa,CAAC,YAAqB;IAC3C,IAAI,YAAY,KAAK,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzE,MAAM,IAAI,GAAG,YAAuC,CAAC;IAGrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA+C,CAAC;IACtE,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,QAAQ,CAAC,MAAoB,CAAC;IACtC,CAAC;IAGD,MAAM,WAAW,GAAG,IAAI,CAAC,QAA+C,CAAC;IACzE,MAAM,MAAM,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAA+C,CAAC;IAC5E,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAoB,CAAC;IACpC,CAAC;IAGD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,MAAoB,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAID,SAAS,QAAQ,CAAC,UAAkB;IACnC,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC;IAChE,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,YAAY,GAA+B;IAEhD,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,0CAA0C;IACjD,SAAS,EAAE,4CAA4C;CACvD,CAAC;AAEF,SAAgB,WAAW,CAAC,IAAW,EAAE,YAAqB,EAAE,UAAkB;IACjF,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAGjC,MAAM,MAAM,GACX,MAAM,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,MAAM;aACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,GAAG,MAAA,CAAC,CAAC,IAAI,mCAAI,SAAS,KAAK,MAAA,CAAC,CAAC,OAAO,mCAAI,4BAA4B,EAAE,CAAA,EAAA,CAAC;aAClF,IAAI,CAAC,IAAI,CAAC;QACb,CAAC,CAAC,0CAA0C,CAAC;IAE/C,MAAM,OAAO,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,CAAC;IAExC,MAAM,IAAI,2BAAY,CAAC,IAAI,EAAE,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAe,EAAE;QAChE,OAAO;QACP,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;QAC5B,KAAK,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;KAChD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { Address } from './types';
2
+ export type Resolution = 'valid' | 'ambiguous' | 'none';
3
+ export interface AddressValidationResult {
4
+ resolution: Resolution;
5
+ classification: {
6
+ code: string;
7
+ label: string;
8
+ };
9
+ candidates: Address[];
10
+ }
11
+ interface RawAddressKeyFormat {
12
+ AddressLine?: string[] | string;
13
+ PoliticalDivision2?: string;
14
+ PoliticalDivision1?: string;
15
+ PostcodePrimaryLow?: string;
16
+ PostcodeExtendedLow?: string;
17
+ CountryCode?: string;
18
+ }
19
+ interface RawClassification {
20
+ Code?: string;
21
+ Description?: string;
22
+ }
23
+ interface RawCandidate {
24
+ AddressClassification?: RawClassification;
25
+ AddressKeyFormat?: RawAddressKeyFormat;
26
+ }
27
+ interface XavResponse {
28
+ XAVResponse?: {
29
+ ValidAddressIndicator?: unknown;
30
+ AmbiguousAddressIndicator?: unknown;
31
+ NoCandidatesIndicator?: unknown;
32
+ AddressClassification?: RawClassification;
33
+ Candidate?: RawCandidate[] | RawCandidate;
34
+ };
35
+ }
36
+ export declare function shapeCandidates(response: XavResponse): AddressValidationResult;
37
+ export {};
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shapeCandidates = shapeCandidates;
4
+ const CLASSIFICATION_LABELS = {
5
+ '0': 'UnClassified',
6
+ '1': 'Commercial',
7
+ '2': 'Residential',
8
+ };
9
+ function labelFor(code, description) {
10
+ var _a;
11
+ const safeCode = code !== null && code !== void 0 ? code : '0';
12
+ return {
13
+ code: safeCode,
14
+ label: (_a = description !== null && description !== void 0 ? description : CLASSIFICATION_LABELS[safeCode]) !== null && _a !== void 0 ? _a : 'UnClassified',
15
+ };
16
+ }
17
+ function resolutionOf(xav) {
18
+ if (xav.ValidAddressIndicator !== undefined)
19
+ return 'valid';
20
+ if (xav.AmbiguousAddressIndicator !== undefined)
21
+ return 'ambiguous';
22
+ return 'none';
23
+ }
24
+ function toAddress(akf, classification) {
25
+ var _a, _b, _c, _d, _e;
26
+ const lines = Array.isArray(akf.AddressLine)
27
+ ? akf.AddressLine
28
+ : akf.AddressLine
29
+ ? [akf.AddressLine]
30
+ : [];
31
+ const postal = akf.PostcodeExtendedLow
32
+ ? `${(_a = akf.PostcodePrimaryLow) !== null && _a !== void 0 ? _a : ''}-${akf.PostcodeExtendedLow}`
33
+ : ((_b = akf.PostcodePrimaryLow) !== null && _b !== void 0 ? _b : '');
34
+ const address = {
35
+ addressLines: lines,
36
+ city: (_c = akf.PoliticalDivision2) !== null && _c !== void 0 ? _c : '',
37
+ stateProvinceCode: (_d = akf.PoliticalDivision1) !== null && _d !== void 0 ? _d : '',
38
+ postalCode: postal,
39
+ countryCode: (_e = akf.CountryCode) !== null && _e !== void 0 ? _e : '',
40
+ };
41
+ if ((classification === null || classification === void 0 ? void 0 : classification.Code) === '2')
42
+ address.residential = true;
43
+ if ((classification === null || classification === void 0 ? void 0 : classification.Code) === '1')
44
+ address.residential = false;
45
+ return address;
46
+ }
47
+ function shapeCandidates(response) {
48
+ var _a, _b;
49
+ const xav = response.XAVResponse;
50
+ if (!xav) {
51
+ return { resolution: 'none', classification: labelFor('0'), candidates: [] };
52
+ }
53
+ const rawCandidates = Array.isArray(xav.Candidate)
54
+ ? xav.Candidate
55
+ : xav.Candidate
56
+ ? [xav.Candidate]
57
+ : [];
58
+ const topClassification = labelFor((_a = xav.AddressClassification) === null || _a === void 0 ? void 0 : _a.Code, (_b = xav.AddressClassification) === null || _b === void 0 ? void 0 : _b.Description);
59
+ const candidates = rawCandidates
60
+ .filter((c) => c.AddressKeyFormat)
61
+ .map((c) => toAddress(c.AddressKeyFormat, c.AddressClassification));
62
+ return {
63
+ resolution: resolutionOf(xav),
64
+ classification: topClassification,
65
+ candidates,
66
+ };
67
+ }
68
+ //# sourceMappingURL=shapeCandidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapeCandidates.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/shapeCandidates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Money } from './types';
2
+ export interface UpsCharge {
3
+ CurrencyCode?: string;
4
+ MonetaryValue?: string;
5
+ }
6
+ export declare function toMoney(charge: UpsCharge | undefined | null): Money | null;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toMoney = toMoney;
4
+ function toMoney(charge) {
5
+ if (!charge)
6
+ return null;
7
+ const { CurrencyCode, MonetaryValue } = charge;
8
+ if (!CurrencyCode ||
9
+ MonetaryValue === undefined ||
10
+ MonetaryValue === null ||
11
+ MonetaryValue === '') {
12
+ return null;
13
+ }
14
+ return { amount: MonetaryValue, currency: CurrencyCode };
15
+ }
16
+ //# sourceMappingURL=toMoney.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toMoney.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/toMoney.ts"],"names":[],"mappings":";;AAWA,0BAYC;AAZD,SAAgB,OAAO,CAAC,MAAoC;IAC3D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAC/C,IACC,CAAC,YAAY;QACb,aAAa,KAAK,SAAS;QAC3B,aAAa,KAAK,IAAI;QACtB,aAAa,KAAK,EAAE,EACnB,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { NormalizedAddressInput } from './toXavAddress';
2
+ export interface UpsAddress {
3
+ AddressLine: string[];
4
+ City: string;
5
+ StateProvinceCode: string;
6
+ PostalCode: string;
7
+ CountryCode: string;
8
+ ResidentialAddressIndicator?: string;
9
+ }
10
+ export declare function toUpsAddress(input: NormalizedAddressInput & {
11
+ residential?: boolean;
12
+ }): UpsAddress;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toUpsAddress = toUpsAddress;
4
+ function toUpsAddress(input) {
5
+ var _a;
6
+ const address = {
7
+ AddressLine: ((_a = input.addressLines) !== null && _a !== void 0 ? _a : []).map((l) => l.trim()).filter((l) => l.length > 0),
8
+ City: input.city,
9
+ StateProvinceCode: input.stateProvinceCode,
10
+ PostalCode: input.postalCode,
11
+ CountryCode: input.countryCode,
12
+ };
13
+ if (input.residential)
14
+ address.ResidentialAddressIndicator = '';
15
+ return address;
16
+ }
17
+ //# sourceMappingURL=toUpsAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUpsAddress.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/toUpsAddress.ts"],"names":[],"mappings":";;AAeA,oCAYC;AAZD,SAAgB,YAAY,CAC3B,KAAyD;;IAEzD,MAAM,OAAO,GAAe;QAC3B,WAAW,EAAE,CAAC,MAAA,KAAK,CAAC,YAAY,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACxF,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;KAC9B,CAAC;IACF,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,CAAC,2BAA2B,GAAG,EAAE,CAAC;IAChE,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface NormalizedAddressInput {
2
+ addressLines: string[];
3
+ city: string;
4
+ stateProvinceCode: string;
5
+ postalCode: string;
6
+ countryCode: string;
7
+ }
8
+ export interface XavAddressKeyFormat {
9
+ AddressLine: string[];
10
+ PoliticalDivision2: string;
11
+ PoliticalDivision1: string;
12
+ PostcodePrimaryLow: string;
13
+ PostcodeExtendedLow?: string;
14
+ CountryCode: string;
15
+ }
16
+ export declare function toXavAddress(input: NormalizedAddressInput): XavAddressKeyFormat;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toXavAddress = toXavAddress;
4
+ function splitPostcode(postalCode) {
5
+ const trimmed = (postalCode !== null && postalCode !== void 0 ? postalCode : '').trim();
6
+ const dash = trimmed.indexOf('-');
7
+ if (dash > -1) {
8
+ return { primary: trimmed.slice(0, dash), extended: trimmed.slice(dash + 1) || undefined };
9
+ }
10
+ return { primary: trimmed };
11
+ }
12
+ function toXavAddress(input) {
13
+ var _a;
14
+ const { primary, extended } = splitPostcode(input.postalCode);
15
+ const result = {
16
+ AddressLine: ((_a = input.addressLines) !== null && _a !== void 0 ? _a : []).map((l) => l.trim()).filter((l) => l.length > 0),
17
+ PoliticalDivision2: input.city,
18
+ PoliticalDivision1: input.stateProvinceCode,
19
+ PostcodePrimaryLow: primary,
20
+ CountryCode: input.countryCode,
21
+ };
22
+ if (extended)
23
+ result.PostcodeExtendedLow = extended;
24
+ return result;
25
+ }
26
+ //# sourceMappingURL=toXavAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toXavAddress.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/toXavAddress.ts"],"names":[],"mappings":";;AA+BA,oCAWC;AApBD,SAAS,aAAa,CAAC,UAAkB;IACxC,MAAM,OAAO,GAAG,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;IAC5F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,YAAY,CAAC,KAA6B;;IACzD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAwB;QACnC,WAAW,EAAE,CAAC,MAAA,KAAK,CAAC,YAAY,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACxF,kBAAkB,EAAE,KAAK,CAAC,IAAI;QAC9B,kBAAkB,EAAE,KAAK,CAAC,iBAAiB;QAC3C,kBAAkB,EAAE,OAAO;QAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;KAC9B,CAAC;IACF,IAAI,QAAQ;QAAE,MAAM,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IACpD,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,73 @@
1
+ export interface Money {
2
+ amount: string;
3
+ currency: string;
4
+ }
5
+ export interface Activity {
6
+ date?: string;
7
+ time?: string;
8
+ statusType?: string;
9
+ statusCode?: string;
10
+ statusDescription?: string;
11
+ location?: string;
12
+ }
13
+ export interface TrackResult {
14
+ trackingNumber: string;
15
+ statusType?: string;
16
+ statusCode?: string;
17
+ statusDescription?: string;
18
+ deliveryDate?: string;
19
+ service?: string;
20
+ activity?: Activity[];
21
+ }
22
+ export interface Address {
23
+ addressLines: string[];
24
+ city: string;
25
+ stateProvinceCode: string;
26
+ postalCode: string;
27
+ countryCode: string;
28
+ residential?: boolean;
29
+ }
30
+ export interface RateLine {
31
+ serviceCode: string;
32
+ serviceName: string;
33
+ negotiated: Money | null;
34
+ published: Money;
35
+ billingWeight: string | null;
36
+ transitDays: number | null;
37
+ guaranteedBy: string | null;
38
+ alerts: string[];
39
+ }
40
+ export interface Product {
41
+ Description: string;
42
+ Unit: {
43
+ Number: string;
44
+ UnitOfMeasurement: {
45
+ Code: string;
46
+ };
47
+ Value: string;
48
+ };
49
+ CommodityCode?: string;
50
+ OriginCountryCode?: string;
51
+ NumberOfPackagesPerCommodity?: string;
52
+ }
53
+ export interface InternationalForms {
54
+ FormType: string[];
55
+ InvoiceNumber?: string;
56
+ InvoiceDate?: string;
57
+ ReasonForExport: string;
58
+ CurrencyCode: string;
59
+ TermsOfShipment?: string;
60
+ Contacts: {
61
+ SoldTo: {
62
+ Name: string;
63
+ Address: {
64
+ AddressLine: string[];
65
+ City: string;
66
+ StateProvinceCode?: string;
67
+ PostalCode?: string;
68
+ CountryCode: string;
69
+ };
70
+ };
71
+ };
72
+ Product: Product[];
73
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../nodes/Ups/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const addressDescription: INodeProperties[];
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addressDescription = void 0;
4
+ const validate_operation_1 = require("./validate.operation");
5
+ const showOnlyForAddress = {
6
+ resource: ['address'],
7
+ };
8
+ exports.addressDescription = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: { show: showOnlyForAddress },
15
+ options: [validate_operation_1.validateOperationOption],
16
+ default: 'validate',
17
+ },
18
+ ...validate_operation_1.validateOperationDescription,
19
+ ];
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Ups/resources/address/index.ts"],"names":[],"mappings":";;;AACA,6DAA6F;AAE7F,MAAM,kBAAkB,GAAG;IAC1B,QAAQ,EAAE,CAAC,SAAS,CAAC;CACrB,CAAC;AAGW,QAAA,kBAAkB,GAAsB;IACpD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAC5C,OAAO,EAAE,CAAC,4CAAuB,CAAC;QAClC,OAAO,EAAE,UAAU;KACnB;IACD,GAAG,iDAA4B;CAC/B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { IExecuteSingleFunctions, IHttpRequestOptions, IN8nHttpFullResponse, INodeExecutionData, INodeProperties } from 'n8n-workflow';
2
+ declare function validatePreSend(this: IExecuteSingleFunctions, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
3
+ declare function validatePostReceive(this: IExecuteSingleFunctions, _items: INodeExecutionData[], response: IN8nHttpFullResponse): Promise<INodeExecutionData[]>;
4
+ export declare const validateOperationDescription: INodeProperties[];
5
+ export declare const validateOperationOption: {
6
+ name: string;
7
+ value: string;
8
+ action: string;
9
+ description: string;
10
+ routing: {
11
+ request: {
12
+ method: "POST";
13
+ url: string;
14
+ ignoreHttpStatusErrors: boolean;
15
+ };
16
+ send: {
17
+ preSend: (typeof validatePreSend)[];
18
+ };
19
+ output: {
20
+ postReceive: (typeof validatePostReceive)[];
21
+ };
22
+ };
23
+ };
24
+ export {};