@@ -18,44 +18,49 @@ var Triplet = ('object' === typeof module && exports) || {};
18
18
19
19
Triplet . TERMS_CHANNEL = [ 'master' , 'nightly' ] ;
20
20
Triplet . TERMS_CHECKSUM = [
21
- 'MD5SUMS' ,
22
21
'B3SUMS' ,
22
+ 'checksum' ,
23
+ 'MD5SUMS' ,
23
24
'SHA1SUMS' ,
24
25
'SHA256SUMS' ,
25
26
'SHA512SUMS' ,
26
- 'checksum' ,
27
27
] ;
28
28
Triplet . TERMS_NON_BUILD = [
29
- / ( \b | _ ) ( s o u r c e ) ( \b | _ ) / ,
30
- / ( \b | _ ) ( v e n d o r ) ( \b | _ ) / , // TODO rclone go vendor
31
- / ( \b | _ ) ( s r c ) ( \b | _ ) / ,
32
- / ( \b | _ ) ( s e t u p ) ( \b | _ ) / ,
33
- / ( \b | _ ) ( s y m b o l s ) ( \b | _ ) / ,
34
- / ( \b | _ ) ( b o o t s t r a p ) ( \b | _ ) / ,
29
+ 'bootstrap' ,
30
+ 'debug' , // TODO dashd
31
+ 'setup' ,
32
+ 'source' ,
33
+ 'src' ,
34
+ 'symbols' ,
35
35
// a build, but not one you'd use given the alternative
36
- / ( \b | _ ) ( u n s i g n e d ) ( \b | _ ) / , // TODO dashd
37
- / ( \b | _ ) ( d e b u g ) ( \b | _ ) / , // TODO dashd
36
+ ' unsigned' , // TODO dashd
37
+ 'vendor' , // TODO rclone go vendor
38
38
] ;
39
+ Triplet . _RE_TERMS_NON_BUILD = [ ] ;
40
+ for ( let term of Triplet . TERMS_NON_BUILD ) {
41
+ let re = new RegExp ( `(\\b|_)(${ term } )(\\b|_)` ) ;
42
+ Triplet . _RE_TERMS_NON_BUILD . push ( re ) ;
43
+ }
39
44
Triplet . TERMS_EXTS_NON_BUILD = [
40
45
'.1' ,
46
+ '.asc' ,
41
47
'.b3' ,
48
+ '.json' ,
49
+ '.md5' ,
50
+ '.pem' ,
51
+ '.sbom' ,
42
52
'.sha256' ,
43
53
'.sha256sum' ,
44
54
'.sha512' ,
45
- '.md5' ,
46
- '.txt' ,
47
55
'.sig' ,
48
- '.pem' ,
49
- '.sbom' ,
50
- '.json' ,
51
- '.asc' ,
56
+ '.txt' ,
52
57
// no android
53
58
'.apk' ,
54
- // windows something... not sure
55
- '.msixbundle' ,
56
59
// we can't use these yet
57
60
'.deb' ,
58
61
'.rpm' ,
62
+ // windows something... not sure
63
+ '.msixbundle' ,
59
64
] ;
60
65
61
66
// many assets are bare - we'd have to check if any contain a '.'
@@ -95,9 +100,9 @@ var Triplet = ('object' === typeof module && exports) || {};
95
100
96
101
Triplet . TERMS_EXTS_ZIP = [
97
102
'.bz2' , // -j, --bzip2 (for completeness, not used)
98
- '.zip' , // (auto on BSD tar on Windows and macOS)
99
103
'.gz' , // -z, --gzip
100
104
'.xz' , // -J, --xz
105
+ '.zip' , // (auto on BSD tar on Windows and macOS)
101
106
// neither macos nor linux have zstd by default
102
107
'.zst' , // --zstd
103
108
'.7z' , // --lz4, --lzma, --lzop
@@ -110,6 +115,7 @@ var Triplet = ('object' === typeof module && exports) || {};
110
115
'.xz' ,
111
116
'.zst' ,
112
117
'.zip' ,
118
+ // .tar should come *after* extensions that use it
113
119
'.tar' ,
114
120
'.7z' ,
115
121
] ;
@@ -444,8 +450,8 @@ var Triplet = ('object' === typeof module && exports) || {};
444
450
}
445
451
}
446
452
447
- for ( let term of Triplet . TERMS_NON_BUILD ) {
448
- if ( term . test ( build . download ) ) {
453
+ for ( let re of Triplet . _RE_TERMS_NON_BUILD ) {
454
+ if ( re . test ( build . download ) ) {
449
455
return false ;
450
456
}
451
457
}
@@ -919,6 +925,11 @@ var Triplet = ('object' === typeof module && exports) || {};
919
925
return pkg ;
920
926
} ;
921
927
928
+ /**
929
+ * Determines the package type from the file name, accounting for ambiguous extensions.
930
+ * @param {String } filename
931
+ * @returns {String } - ex: '.zip', '.app.zip', '.tar.gz', '...'
932
+ */
922
933
Triplet . filenameToPackageType = function ( filename ) {
923
934
let _filename = filename ;
924
935
let pkg = '' ;
0 commit comments