tracking_number 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/data/couriers/amazon.json +17 -2
- data/lib/data/couriers/canadapost.json +30 -0
- data/lib/data/couriers/dhl.json +16 -0
- data/lib/data/couriers/fedex.json +15 -5
- data/lib/data/couriers/landmark.json +25 -0
- data/lib/data/couriers/lasership.json +67 -0
- data/lib/data/couriers/ontrac.json +33 -1
- data/lib/data/couriers/ups.json +45 -1
- data/lib/tracking_number/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6cc354ab8bec0969d5ee99653b5ba5f84022c0b04246d3167f29fa3c090ba6e
|
4
|
+
data.tar.gz: 83cb2e829315d7efd4b7a541e6d82b36965b99c0502b70cd071e3c2c818b1a9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87cbfb9075a3afa2d5092ec7ace7a4403c9e33729cbe8e42ea36dd7b59464ca496495e2ec459ef1f8857fccafb0212f8e4177e71bbac82183913f9eceb52ddf8
|
7
|
+
data.tar.gz: 7e52110a5825a5a42c81ff03c9ef1b8e85b9e5cda23be4e56ba23b05deed17eb23aae7de6b568f89b82052e5c83b6fde7555b48dc7b331e1f5cf7b73fc66f6aa
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
# Changelog
|
2
|
+
|
3
|
+
## [v1.2](https://github.com/jkeen/tracking_number/tree/v1.2) (2022-11-03)
|
4
|
+
Update tracking number definitions from [tracking_number_data](https://github.com/jkeen/tracking_number_data). Now includes Lasership, UPS Waybill, Landmark, Canada Post, On Trac (D*)
|
5
|
+
|
6
|
+
## [v1.1.2](https://github.com/jkeen/tracking_number/tree/v1.1.1) (2022-11-03)
|
7
|
+
Add method to help tracking_number_data test itself better
|
2
8
|
## [v1.1.1](https://github.com/jkeen/tracking_number/tree/v1.1.1) (2022-11-03)
|
3
9
|
Fix gem build error
|
4
10
|
|
@@ -7,8 +7,7 @@
|
|
7
7
|
"regex": [
|
8
8
|
"\\s*T\\s*B\\s*A\\s*(?<SerialNumber>([0-9]\\s*){12,12})\\s*"
|
9
9
|
],
|
10
|
-
"validation": {
|
11
|
-
},
|
10
|
+
"validation": {},
|
12
11
|
"test_numbers": {
|
13
12
|
"valid": [
|
14
13
|
"TBA000000000000",
|
@@ -23,6 +22,22 @@
|
|
23
22
|
"TBB000000000000"
|
24
23
|
]
|
25
24
|
}
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "Amazon International",
|
28
|
+
"regex": [
|
29
|
+
"\\s*[AFC]\\s*(?<SerialNumber>([0-9]\\s*){10,10})\\s*"
|
30
|
+
],
|
31
|
+
"validation": {},
|
32
|
+
"test_numbers": {
|
33
|
+
"valid": [
|
34
|
+
"C1004444443",
|
35
|
+
"C1004444444"
|
36
|
+
],
|
37
|
+
"invalid": [
|
38
|
+
"D1234567890"
|
39
|
+
]
|
40
|
+
}
|
26
41
|
}
|
27
42
|
]
|
28
43
|
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"name": "Canada Post",
|
3
|
+
"courier_code": "canada_post",
|
4
|
+
"tracking_numbers": [
|
5
|
+
{
|
6
|
+
"name": "Canada Post (16)",
|
7
|
+
"regex": "\\s*(?<SerialNumber>(?<OriginId>([0-9]\\s*){7})([0-9]\\s*){8})(?<CheckDigit>[0-9]\\s*)",
|
8
|
+
"validation": {
|
9
|
+
"checksum": {
|
10
|
+
"name": "mod10",
|
11
|
+
"evens_multiplier": 3,
|
12
|
+
"odds_multiplier": 1
|
13
|
+
}
|
14
|
+
},
|
15
|
+
"tracking_url": "https://www.canadapost-postescanada.ca/track-reperage/en#/search?searchFor=%s",
|
16
|
+
"test_numbers": {
|
17
|
+
"valid": [
|
18
|
+
"0073938000549297",
|
19
|
+
"7035114477138472",
|
20
|
+
"4002847016405018"
|
21
|
+
],
|
22
|
+
"invalid": [
|
23
|
+
"0073938000549292",
|
24
|
+
"7035114477138471",
|
25
|
+
"5002847016405018"
|
26
|
+
]
|
27
|
+
}
|
28
|
+
}
|
29
|
+
]
|
30
|
+
}
|
data/lib/data/couriers/dhl.json
CHANGED
@@ -45,6 +45,22 @@
|
|
45
45
|
"73891051147"
|
46
46
|
]
|
47
47
|
}
|
48
|
+
},
|
49
|
+
{
|
50
|
+
"name": "DHL E-Commerce",
|
51
|
+
"regex": "\\s*((G\\s*M\\s*)|(L\\s*X\\s*)|(R\\s*X\\s*)|(U\\s*V\\s*)|(C\\s*N\\s*)|(S\\s*G\\s*)|(T\\s*H\\s*)|(I\\s*N\\s*)|(H\\s*K\\s*)|(M\\s*Y\\s*))\\s*(?<SerialNumber>(\\w\\s*){10,39})",
|
52
|
+
"validation": {},
|
53
|
+
"tracking_url": "http://www.dhl.com/en/express/tracking.html?brand=DHL&AWB=%s",
|
54
|
+
"test_numbers": {
|
55
|
+
"valid": [
|
56
|
+
"GM2951173225174494",
|
57
|
+
"GM295117494011169042"
|
58
|
+
],
|
59
|
+
"invalid": [
|
60
|
+
"GS295117494011169041",
|
61
|
+
"GR295117494011169045"
|
62
|
+
]
|
63
|
+
}
|
48
64
|
}
|
49
65
|
]
|
50
66
|
}
|
@@ -43,7 +43,7 @@
|
|
43
43
|
{
|
44
44
|
"name": "FedEx Express (34)",
|
45
45
|
"regex": [
|
46
|
-
"\\s*1\\s*0\\s*0\\s*[0-9]\\s*[0-9]\\s*",
|
46
|
+
"\\s*1\\s*0\\s*[0-9]\\s*[0-9]\\s*[0-9]\\s*",
|
47
47
|
"([0-9]\\s*){10}",
|
48
48
|
"(?<DestinationZip>([0-9]\\s*){5})",
|
49
49
|
"(?<SerialNumber>([0-9]\\s*){13})",
|
@@ -78,7 +78,8 @@
|
|
78
78
|
"1001921380360001000300639585804382",
|
79
79
|
"1001901781990001000300617767839437",
|
80
80
|
" 1 0 0 1 9 0 1 7 8 1 9 9 0 0 0 1 0 0 0 3 0 0 6 1 7 7 6 7 8 3 9 4 3 7 ",
|
81
|
-
"1002297871540001000300790695517286"
|
81
|
+
"1002297871540001000300790695517286",
|
82
|
+
"1027590111820004833500785458233610"
|
82
83
|
],
|
83
84
|
"invalid": [
|
84
85
|
"1001901781990001000300617767839438"
|
@@ -89,7 +90,10 @@
|
|
89
90
|
"name": "FedEx SmartPost",
|
90
91
|
"description": "IMpb CO3 standard",
|
91
92
|
"regex": [
|
92
|
-
"\\s*(
|
93
|
+
"\\s*(?:",
|
94
|
+
"(?:(?<RoutingApplicationId>4\\s*2\\s*0\\s*)(?<DestinationZip>([0-9]\\s*){5}))?",
|
95
|
+
"(?<ApplicationIdentifier>9\\s*2\\s*)",
|
96
|
+
")?",
|
93
97
|
"(?<SerialNumber>",
|
94
98
|
"(?<ServiceType>([0-9]\\s*){3})",
|
95
99
|
"(?<ShipperId>([0-9]\\s*){9})",
|
@@ -115,10 +119,16 @@
|
|
115
119
|
"valid": [
|
116
120
|
"61299998820821171811",
|
117
121
|
" 6 1 2 9 9 9 9 8 8 2 0 8 2 1 1 7 1 8 1 1 ",
|
118
|
-
"9261292700768711948021"
|
122
|
+
"9261292700768711948021",
|
123
|
+
"420 11213 92 6129098349792366623 8",
|
124
|
+
"92 6129098349792366623 8",
|
125
|
+
"6129098349792366623 8"
|
119
126
|
],
|
120
127
|
"invalid": [
|
121
|
-
"9261292700768711948020"
|
128
|
+
"9261292700768711948020",
|
129
|
+
"420 11213 6129098349792366623 8",
|
130
|
+
"420 92 6129098349792366623 8",
|
131
|
+
"11213 92 6129098349792366623 8"
|
122
132
|
]
|
123
133
|
}
|
124
134
|
},
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"name": "Landmark Global LTN",
|
3
|
+
"courier_code": "landmark",
|
4
|
+
"tracking_numbers": [
|
5
|
+
{
|
6
|
+
"name": "Landmark Global LTN",
|
7
|
+
"regex": [
|
8
|
+
"\\s*L\\s*T\\s*N\\s*(?<SerialNumber>([0-9]\\s*){8})\\s*N\\s*1"
|
9
|
+
],
|
10
|
+
"tracking_url": "https://track.landmarkglobal.com/?search=%s",
|
11
|
+
"validation": {},
|
12
|
+
"test_numbers": {
|
13
|
+
"valid": [
|
14
|
+
"LTN74207623N1",
|
15
|
+
"LTN74209518N1",
|
16
|
+
"LTN74224021N1"
|
17
|
+
],
|
18
|
+
"invalid": [
|
19
|
+
"LSN74209518N2",
|
20
|
+
"LSN74209518N1"
|
21
|
+
]
|
22
|
+
}
|
23
|
+
}
|
24
|
+
]
|
25
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
{
|
2
|
+
"name": "LaserShip",
|
3
|
+
"courier_code": "lasership",
|
4
|
+
"tracking_numbers": [
|
5
|
+
{
|
6
|
+
"name": "LaserShip LX",
|
7
|
+
"regex": [
|
8
|
+
"\\s*L\\s*X\\s*1\\s*[3-8]\\s*(?<SerialNumber>([0-9]\\s*){6,6})\\s*"
|
9
|
+
],
|
10
|
+
"validation": {
|
11
|
+
},
|
12
|
+
"test_numbers": {
|
13
|
+
"valid": [
|
14
|
+
"LX17635036",
|
15
|
+
"LX 176 35035",
|
16
|
+
"LX17635034"
|
17
|
+
],
|
18
|
+
"invalid": [
|
19
|
+
"LX1763503N",
|
20
|
+
"LC176350N6",
|
21
|
+
"LA17635036",
|
22
|
+
" L A 1 7 6 3 5 0 3 6 "
|
23
|
+
]
|
24
|
+
}
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "LaserShip 1LS7 (15)",
|
28
|
+
"regex": [
|
29
|
+
"\\s*1\\s*L\\s*S\\s*7\\s*[12]\\s*([0-9]\\s*){4,4}",
|
30
|
+
"(?<SerialNumber>([0-9]\\s*){6,6})\\s*"
|
31
|
+
],
|
32
|
+
"validation": {
|
33
|
+
},
|
34
|
+
"test_numbers": {
|
35
|
+
"valid": [
|
36
|
+
"1LS717793482164",
|
37
|
+
"1LS724505321754",
|
38
|
+
"1LS720000000000",
|
39
|
+
" 1 L S 7 2 0 0 0 0 0 0 0 0 0 0 "
|
40
|
+
],
|
41
|
+
"invalid": [
|
42
|
+
"1LX734505321754"
|
43
|
+
]
|
44
|
+
}
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"name": "LaserShip 1LS7 (18)",
|
48
|
+
"regex": [
|
49
|
+
"\\s*1\\s*L\\s*S\\s*7\\s*",
|
50
|
+
"[12]\\s*([0-9]\\s*){2,2}\\s*0\\s*1\\s*[1234]\\s*",
|
51
|
+
"\\s*(?<SerialNumber>([0-9]\\s*){6,6})",
|
52
|
+
"-\\s*1\\s*"
|
53
|
+
],
|
54
|
+
"validation": {
|
55
|
+
},
|
56
|
+
"test_numbers": {
|
57
|
+
"valid": [
|
58
|
+
"1LS7119013618127-1",
|
59
|
+
" 1 L S 7 1 1 9 0 1 3 6 1 8 1 2 7 - 1 "
|
60
|
+
],
|
61
|
+
"invalid": [
|
62
|
+
"1LS7119013618127-2"
|
63
|
+
]
|
64
|
+
}
|
65
|
+
}
|
66
|
+
]
|
67
|
+
}
|
@@ -23,13 +23,45 @@
|
|
23
23
|
"valid": [
|
24
24
|
"C11031500001879",
|
25
25
|
" C 1 1 0 3 1 5 0 0 0 0 1 8 7 9 ",
|
26
|
-
"C10999911320231"
|
26
|
+
"C10999911320231",
|
27
|
+
"C11121552953069",
|
28
|
+
"C11121553156000",
|
29
|
+
"C11121552829468"
|
27
30
|
],
|
28
31
|
"invalid": [
|
29
32
|
"C10000000000000",
|
30
33
|
"C11031500001889"
|
31
34
|
]
|
32
35
|
}
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"name": "OnTrac D",
|
39
|
+
"regex": "\\s*D\\s*(?<SerialNumber>([0-9]\\s*){13})(?<CheckDigit>[0-9]\\s*)",
|
40
|
+
"validation": {
|
41
|
+
"checksum": {
|
42
|
+
"name": "mod10",
|
43
|
+
"evens_multiplier": 1,
|
44
|
+
"odds_multiplier": 2
|
45
|
+
},
|
46
|
+
"serial_number_format": {
|
47
|
+
"prepend_if": {
|
48
|
+
"matches_regex": "^(?!5).+$",
|
49
|
+
"content": "5"
|
50
|
+
}
|
51
|
+
}
|
52
|
+
},
|
53
|
+
"tracking_url": "http://www.ontrac.com/trackingres.asp?tracking_number=%s",
|
54
|
+
"test_numbers": {
|
55
|
+
"valid": [
|
56
|
+
"D10011354453707",
|
57
|
+
"D10011345983010",
|
58
|
+
"D10011342332145"
|
59
|
+
],
|
60
|
+
"invalid": [
|
61
|
+
"D10011345983012",
|
62
|
+
"D10011342332144"
|
63
|
+
]
|
64
|
+
}
|
33
65
|
}
|
34
66
|
]
|
35
67
|
}
|
data/lib/data/couriers/ups.json
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
"(?<ShipperId>(?:[A-Z0-9]\\s*){6,6})",
|
10
10
|
"(?<ServiceType>(?:[A-Z0-9]\\s*){2,2})",
|
11
11
|
"(?<PackageId>(?:[A-Z0-9]\\s*){7,7}))",
|
12
|
-
"(?<CheckDigit>[
|
12
|
+
"(?<CheckDigit>[0-9]\\s*)"
|
13
13
|
],
|
14
14
|
"validation": {
|
15
15
|
"checksum": {
|
@@ -134,6 +134,50 @@
|
|
134
134
|
"1Z1111111111111111"
|
135
135
|
]
|
136
136
|
}
|
137
|
+
},
|
138
|
+
{
|
139
|
+
"name": "UPS Waybill",
|
140
|
+
"regex": [
|
141
|
+
"\\s*(?<ServiceType>([A-Z]\\s*){1})",
|
142
|
+
"(?<SerialNumber>(?:[A-Z0-9]\\s*){9,9})",
|
143
|
+
"(?<CheckDigit>[A-Z0-9]\\s*)"
|
144
|
+
],
|
145
|
+
"validation": {
|
146
|
+
"checksum": {
|
147
|
+
"name": "mod10",
|
148
|
+
"evens_multiplier": 1,
|
149
|
+
"odds_multiplier": 2
|
150
|
+
}
|
151
|
+
},
|
152
|
+
"additional": [
|
153
|
+
{
|
154
|
+
"name": "Service Type",
|
155
|
+
"regex_group_name": "ServiceType",
|
156
|
+
"lookup": [
|
157
|
+
{
|
158
|
+
"matches": "J",
|
159
|
+
"name": "UPS Next Day Express"
|
160
|
+
},
|
161
|
+
{
|
162
|
+
"matches": "K",
|
163
|
+
"name": "UPS Ground"
|
164
|
+
}
|
165
|
+
]
|
166
|
+
}
|
167
|
+
],
|
168
|
+
"tracking_url": "https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=%s",
|
169
|
+
"test_numbers": {
|
170
|
+
"valid": [
|
171
|
+
"K1506235620",
|
172
|
+
"K2479825491",
|
173
|
+
"J4603636537"
|
174
|
+
],
|
175
|
+
"invalid": [
|
176
|
+
"K1506235622",
|
177
|
+
"K2479825492",
|
178
|
+
"J4603636538"
|
179
|
+
]
|
180
|
+
}
|
137
181
|
}
|
138
182
|
]
|
139
183
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracking_number
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Keen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-11-
|
11
|
+
date: 2022-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -157,8 +157,11 @@ files:
|
|
157
157
|
- README.md
|
158
158
|
- Rakefile
|
159
159
|
- lib/data/couriers/amazon.json
|
160
|
+
- lib/data/couriers/canadapost.json
|
160
161
|
- lib/data/couriers/dhl.json
|
161
162
|
- lib/data/couriers/fedex.json
|
163
|
+
- lib/data/couriers/landmark.json
|
164
|
+
- lib/data/couriers/lasership.json
|
162
165
|
- lib/data/couriers/ontrac.json
|
163
166
|
- lib/data/couriers/s10.json
|
164
167
|
- lib/data/couriers/ups.json
|