Socket
Socket
Sign inDemoInstall

delivery-tracker

Package Overview
Dependencies
Maintainers
1
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

delivery-tracker - npm Package Compare versions

Comparing version 2.2.3 to 2.3.0

lib/courier/eparcel.js

2

bin/index.js

@@ -8,3 +8,3 @@ #! /usr/bin/env node

.arguments('<tracecode>')
.option('-c, --courier <courier>', 'Courier Namespace', /^(KOREAPOST|ECARGO|FEDEX|PANTOS|RINCOS|AUSPOST|ROYALMAIL|USPS|CJKOREAEXPRESS|POSLAJU|YELLOEXPRESS|EFS|AIRBRIDGE|UPS|TNT|CESCO|XPOST|KERRYTHAI|SICEPAT|XIOEXPRESS)$/i)
.option('-c, --courier <courier>', 'Courier Namespace', /^(KOREAPOST|ECARGO|FEDEX|PANTOS|RINCOS|AUSPOST|ROYALMAIL|USPS|CJKOREAEXPRESS|POSLAJU|YELLOEXPRESS|EFS|AIRBRIDGE|UPS|TNT|CESCO|XPOST|KERRYTHAI|SICEPAT|XIOEXPRESS|EPARCEL)$/i)
.option('-k, --apikey <apikey>', 'API KEY')

@@ -11,0 +11,0 @@ .action(function (tracecode) {

@@ -0,1 +1,4 @@

# 2.3.0
* add eparcel express
# 2.2.3

@@ -2,0 +5,0 @@ * update xpost api endpoint

@@ -12,3 +12,3 @@ 'use strict'

method: 'GET',
url: 'http://eparcel.kr/tracking/?tn=' + number
url: 'http://old.eparcel.kr/tracking/?tn=' + number
}

@@ -83,4 +83,8 @@ }

}
var result = parser.trace(body, number)
var result
try {
result = parser.trace(body, number)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -87,0 +91,0 @@ })

@@ -85,5 +85,8 @@ 'use strict'

}
var results = parser.trace(body.QueryTrackEventsResponse.TrackingResults)
var results
try {
results = parser.trace(body.QueryTrackEventsResponse.TrackingResults)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(results[0] ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), results[0])

@@ -90,0 +93,0 @@ })

@@ -107,5 +107,9 @@ 'use strict'

}
var result = parser.trace(body)
result.number = number
var result
try {
result = parser.trace(body)
result.number = number
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -112,0 +116,0 @@ })

@@ -78,3 +78,8 @@ 'use strict'

var result = parser.trace(body)
var result
try {
result = parser.trace(body)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -81,0 +86,0 @@ })

@@ -85,4 +85,8 @@ 'use strict'

}
var result = parser.trace(body)
var result
try {
result = parser.trace(body)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -89,0 +93,0 @@ })

@@ -92,3 +92,8 @@ 'use strict'

var result = parser.trace(body)
var result
try {
result = parser.trace(body)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -95,0 +100,0 @@ })

@@ -100,5 +100,8 @@ 'use strict'

}
var results = parser.trace(body.TrackPackagesResponse.packageList)
var results
try {
results = parser.trace(body.TrackPackagesResponse.packageList)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(null, results[0])

@@ -105,0 +108,0 @@ })

@@ -72,3 +72,8 @@ 'use strict'

var result = parser.trace(body, number)
var result
try {
result = parser.trace(body, number)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -75,0 +80,0 @@ })

@@ -147,3 +147,8 @@ 'use strict'

var result = parser.trace(body)
var result
try {
result = parser.trace(body)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -150,0 +155,0 @@ })

@@ -78,3 +78,7 @@ 'use strict'

function (body, cb) {
parser.trace(body, cb)
try {
parser.trace(body, cb)
} catch (e) {
cb('Courier response parsing error: ' + e.message)
}
}

@@ -81,0 +85,0 @@ ], cb)

@@ -92,3 +92,7 @@ 'use strict'

function (body, cb) {
parser.trace(body, cb)
try {
parser.trace(body, cb)
} catch (e) {
cb('Courier response parsing error: ' + e.message)
}
}

@@ -95,0 +99,0 @@ ], cb)

@@ -75,3 +75,8 @@ 'use strict'

var result = parser.trace(body)
var result
try {
result = parser.trace(body)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -78,0 +83,0 @@ })

@@ -79,4 +79,8 @@ 'use strict'

}
var result = parser.trace(body, number)
var result
try {
result = parser.trace(body, number)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -83,0 +87,0 @@ })

@@ -84,4 +84,8 @@ 'use strict'

}
var result = parser.trace(output, number)
var result
try {
result = parser.trace(output, number)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -88,0 +92,0 @@ })

'use strict'
var request = require('request')
var cheerio = require('cheerio')
var tracker = require('../index')
var moment = require('moment')
var tracker = require('../')
var trackingInfo = function (number) {
return {
method: 'GET',
url: 'https://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_KR&Requester=UPSHome&AgreeToTermsAndConditions=yes&ignore=&track.x=29&track.y=8&tracknum=' + number
}
}
var parser = {
trace: function (body) {
var $ = cheerio.load(body)
var courier = {
code: tracker.COURIER.UPS.CODE,
name: tracker.COURIER.UPS.NAME
method: 'POST',
url: 'https://wwwapps.ups.com/track/api/Track/GetStatus?loc=en_KR',
body: JSON.stringify({
Locale: 'en_KR',
Requester: 'UPSHome',
TrackingNumber: [number]
}),
headers: {
'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0'
}
var result = {
courier: courier,
status: tracker.STATUS.PENDING
}
var $form = $('#podFormid')
var checkpoints = []
$('.dataTable tr').each(function (idx) {
if (idx === 0) {
return true
}
var cols = $(this).find('td')
var date = cols.eq(1).text().trim()
var checkpoint = {
courier: courier,
location: cols.eq(0).text().trim().replace(/(\\n|\\t|\s{2,})/g, ' '),
message: cols.eq(3).text().trim().replace(/(\\n|\\t|\s{2,})/g, ' '),
status: tracker.STATUS.IN_TRANSIT,
time: moment([date, cols.eq(2).text().trim()].join(' '), (date.indexOf('/') === 2 ? 'DD/MM/YYYY' : 'YYYY/MM/DD') + ' HH:mm').format('YYYY-MM-DDTHH:mm')
}
if (/Delivered/i.test(checkpoint.message) === true) {
checkpoint.status = tracker.STATUS.DELIVERED
}
checkpoints.push(checkpoint)
})
result.number = $form.find('input[name=tracknum]').val()
result.checkpoints = checkpoints
result.status = tracker.normalizeStatus(result.checkpoints)
return result
}

@@ -68,8 +29,43 @@ }

request(tracking, function (err, res, body) {
if (err) {
return cb(err)
const response = JSON.parse(body)
if (response.statusCode !== '200') {
return cb(response.statusText)
}
const currentTrackNumberStatus = response.trackDetails[0]
if (err || currentTrackNumberStatus.errorCode !== null) {
return cb(err || currentTrackNumberStatus.errorText)
}
var courier = {
code: tracker.COURIER.UPS.CODE,
name: tracker.COURIER.UPS.NAME
}
var result = {
courier: courier,
status: currentTrackNumberStatus.progressBarType,
number: currentTrackNumberStatus.trackingNumber
}
var checkpoints = []
var result = parser.trace(body)
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)
for (var i = 0; i < currentTrackNumberStatus.shipmentProgressActivities.length; i++) {
var current = currentTrackNumberStatus.shipmentProgressActivities[i]
if (!current.date) {
continue
}
var checkpoint = {
courier: courier,
location: current.location,
message: current.activityScan,
status: tracker.STATUS.IN_TRANSIT,
time: moment([current.date, current.time].join(' '), 'YYYY/MM/DD HH:mm').format('YYYY-MM-DDTHH:mm')
}
checkpoints.push(checkpoint)
}
result.checkpoints = checkpoints
result.status = tracker.normalizeStatus(result.checkpoints)
cb(null, result)
})

@@ -76,0 +72,0 @@ }

@@ -42,5 +42,6 @@ 'use strict'

var rawTxt = $history.html()
if (rawTxt) {
rawTxt = rawTxt.replace(/\s+/g, ' ')
if (!rawTxt) {
return false
}
rawTxt = rawTxt.replace(/\s+/g, ' ')
// txt -> history list

@@ -50,3 +51,3 @@ var rawList = rawTxt.split('<hr>')

var list = rawList[i].split('<br>')
if (list.length < 3) {
if (list.length <= 3) {
continue

@@ -59,3 +60,3 @@ }

if (list[3].trim().length > 0) {
if ((list[3] || '').trim().length > 0) {
message.push(toText(list[3]))

@@ -97,4 +98,8 @@ }

}
var result = parser.trace(body)
var result
try {
result = parser.trace(body)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -101,0 +106,0 @@ })

@@ -77,3 +77,8 @@ 'use strict'

var result = parser.trace(body, number)
var result
try {
result = parser.trace(body, number)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -80,0 +85,0 @@ })

@@ -103,3 +103,8 @@ 'use strict'

var result = parser.trace(body)
var result
try {
result = parser.trace(body)
} catch (e) {
return cb('Courier response parsing error: ' + e.message)
}
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -106,0 +111,0 @@ })

@@ -92,2 +92,6 @@ 'use strict'

NAME: 'XIOEXPRESS'
},
EPARCEL: {
CODE: 'eparcel',
NAME: 'eParcel'
}

@@ -94,0 +98,0 @@ }

{
"name": "delivery-tracker",
"version": "2.2.3",
"version": "2.3.0",
"author": {

@@ -5,0 +5,0 @@ "name": "egg",

@@ -33,2 +33,3 @@ # delivery-tracker

XIOExpress | @egg- | https://xioexpress.com/
eParcel | @egg- | https://eparcel.kr/

@@ -122,3 +123,4 @@ ## Installation

SICEPAT | sicepat | SICEPAT
XIOEXPRESS | sicepat | XIOExpress
XIOEXPRESS | xioexpress | XIOExpress
EPARCEL | eparcel | eParcel

@@ -125,0 +127,0 @@ ### STATUS

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc