Socket
Socket
Sign inDemoInstall

delivery-tracker

Package Overview
Dependencies
6
Maintainers
1
Versions
88
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.3.2 to 2.3.3

3

CHANGELOG.md

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

# 2.3.3
* sicepat: add apikey for option
# 2.3.2

@@ -2,0 +5,0 @@ * sicepat: change to work without apikey

2

lib/courier/kerrythai.js

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

status: tracker.STATUS.IN_TRANSIT,
time: moment($el.find('.date').text().trim().replace(/\s+Time/i, '').replace(/Date /i, '') + '+07:00', 'DD MMM YY HH:mmZZ').format()
time: moment($el.find('.date').text().trim().replace(/\s+Time/i, '').replace(/Date /i, ''), 'DD MMM YYYY HH:mm').format('YYYY-MM-DD HH:mm')
}

@@ -49,0 +49,0 @@ if (/delivery successful/i.test(statusMessage) === true) {

@@ -9,59 +9,137 @@ 'use strict'

var trackingInfo = function (number) {
return {
method: 'POST',
url: 'http://sicepat.com/checkAwb',
data: {
'textarea-awb': number
}
}
}
var loadHandler = function (opts) {
if (opts && opts.apikey) {
return {
trackingInfo: function (number) {
return {
method: 'GET',
url: 'http://api.sicepat.com/customer/waybill?waybill=' + number,
json: true
}
},
parser: {
trace: function (body, number) {
var courier = {
code: tracker.COURIER.SICEPAT.CODE,
name: tracker.COURIER.SICEPAT.NAME
}
var extractNumber = function (str) {
var matches = str.match(/(\d+)/)
return matches ? matches[1] : null
}
var result = {
courier: courier,
number: number,
status: tracker.STATUS.PENDING
}
var parser = {
trace: function (body, number) {
var $ = cheerio.load(body)
var courier = {
code: tracker.COURIER.SICEPAT.CODE,
name: tracker.COURIER.SICEPAT.NAME
}
var checkpoints = []
var history = body.sicepat.result.track_history || []
for (var i = history.length - 1; i >= 0; i--) {
var item = history[i]
var checkpoint = {
courier: courier,
location: '',
message: '[' + item.status + '] ' + (item.receiver_name || item.city || ''),
status: tracker.STATUS.IN_TRANSIT,
time: moment(item.date_time + '+0700').utc().format('YYYY-MM-DDTHH:mmZ')
}
var result = {
courier: courier,
number: number,
status: tracker.STATUS.PENDING
}
if (item.status === 'DELIVERED') {
checkpoint.status = tracker.STATUS.DELIVERED
}
var checkpoints = []
var $body = $('#awb-list')
var $summary = $body.find('.res-item')
checkpoints.push(checkpoint)
}
if ($summary.length > 0) {
result.number = extractNumber($summary.find('td').eq(1).text())
if ($summary.find('td').eq(7).text().trim() === 'DELIVERED') {
result.status = tracker.STATUS.DELIVERED
}
result.checkpoints = checkpoints
result.status = tracker.normalizeStatus(result.checkpoints)
$body.find('.res-detail .table').eq(2).find('tr').each(function (idx) {
if (idx === 0) {
return true
return result
}
var $cols = $(this).find('td')
checkpoints.push({
courier: courier,
location: '',
message: $cols.eq(1).text().trim(),
status: tracker.STATUS.IN_TRANSIT,
time: moment($cols.eq(0).text().trim() + '+0700', 'DD-MM-YYYY HH:mmZ').utc().format('YYYY-MM-DDTHH:mmZ')
},
load: function (tracking, cb) {
tracking.headers = {
'api-key': opts.apikey
}
request(tracking, function (err, res, body) {
if (err) {
return cb(err)
}
if (!body.sicepat) {
return cb(tracker.error(tracker.ERROR.UNKNOWN))
}
if (body.sicepat.status.code !== 200) {
return cb(tracker.error(body.sicepat.status.description))
}
cb(null, res, body)
})
})
}
}
}
result.checkpoints = checkpoints
var extractNumber = function (str) {
var matches = str.match(/(\d+)/)
return matches ? matches[1] : null
}
return result
return {
trackingInfo: function (number) {
return {
method: 'POST',
url: 'http://sicepat.com/checkAwb',
data: {
'textarea-awb': number
}
}
},
parser: {
trace: function (body, number) {
var $ = cheerio.load(body)
var courier = {
code: tracker.COURIER.SICEPAT.CODE,
name: tracker.COURIER.SICEPAT.NAME
}
var result = {
courier: courier,
number: number,
status: tracker.STATUS.PENDING
}
var checkpoints = []
var $body = $('#awb-list')
var $summary = $body.find('.res-item')
if ($summary.length > 0) {
result.number = extractNumber($summary.find('td').eq(1).text())
if ($summary.find('td').eq(7).text().trim() === 'DELIVERED') {
result.status = tracker.STATUS.DELIVERED
}
$body.find('.res-detail .table').eq(2).find('tr').each(function (idx) {
if (idx === 0) {
return true
}
var $cols = $(this).find('td')
checkpoints.push({
courier: courier,
location: '',
message: $cols.eq(1).text().trim(),
status: tracker.STATUS.IN_TRANSIT,
time: moment($cols.eq(0).text().trim() + '+0700', 'DD-MM-YYYY HH:mmZ').utc().format('YYYY-MM-DDTHH:mmZ')
})
})
}
result.checkpoints = checkpoints
return result
}
},
load: function (tracking, cb) {
request.post({
url: tracking.url,
form: tracking.data
}, cb)
}
}

@@ -71,10 +149,7 @@ }

module.exports = function (opts) {
var handler = loadHandler(opts)
return {
trackingInfo: trackingInfo,
trackingInfo: handler.trackingInfo,
trace: function (number, cb) {
var tracking = trackingInfo(number)
request.post({
url: tracking.url,
form: tracking.data
}, function (err, res, body) {
handler.load(handler.trackingInfo(number), function (err, res, body) {
if (err) {

@@ -85,3 +160,3 @@ return cb(err)

try {
var result = parser.trace(body, number)
var result = handler.parser.trace(body, number)
cb(result ? null : tracker.error(tracker.ERROR.INVALID_NUMBER), result)

@@ -88,0 +163,0 @@ } catch (e) {

{
"name": "delivery-tracker",
"version": "2.3.2",
"version": "2.3.3",
"author": {

@@ -50,3 +50,4 @@ "name": "egg",

"sicepat",
"xioexpress"
"xioexpress",
"eparcel"
],

@@ -53,0 +54,0 @@ "license": "MIT",

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc