cnpmcore 4.22.0 → 4.22.1
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.
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type BinaryName } from '../../../../config/binaries.ts';
|
|
2
2
|
import { AbstractBinary, type FetchResult } from './AbstractBinary.ts';
|
|
3
3
|
export declare class FirefoxBinary extends AbstractBinary {
|
|
4
|
+
#private;
|
|
4
5
|
initFetch(): Promise<void>;
|
|
5
6
|
fetch(dir: string, binaryName: BinaryName): Promise<FetchResult | undefined>;
|
|
6
7
|
}
|
|
@@ -4,131 +4,202 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _FirefoxBinary_instances, _FirefoxBinary_fetchRootDir, _FirefoxBinary_parseProductDetails, _FirefoxBinary_fetchSubDir;
|
|
7
13
|
import { basename } from 'node:path';
|
|
8
14
|
import { SingletonProto } from 'egg';
|
|
9
15
|
import binaries from "../../../../config/binaries.js";
|
|
10
16
|
import { BinaryType } from "../../enum/Binary.js";
|
|
11
17
|
import { AbstractBinary, BinaryAdapter } from "./AbstractBinary.js";
|
|
18
|
+
// Mozilla product-details API for listing Firefox versions
|
|
19
|
+
// https://product-details.mozilla.org/1.0/firefox.json
|
|
20
|
+
const PRODUCT_DETAILS_URL = 'https://product-details.mozilla.org/1.0/firefox.json';
|
|
12
21
|
let FirefoxBinary = class FirefoxBinary extends AbstractBinary {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
_FirefoxBinary_instances.add(this);
|
|
25
|
+
}
|
|
13
26
|
async initFetch() {
|
|
14
27
|
// do nothing
|
|
15
28
|
return;
|
|
16
29
|
}
|
|
17
30
|
// Only fetch Firefox versions >= 100.0.0 to avoid too old versions
|
|
18
31
|
async fetch(dir, binaryName) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
// For root directory, use Mozilla's product-details JSON API
|
|
33
|
+
// This is more reliable than parsing the large HTML directory listing
|
|
34
|
+
if (dir === '/') {
|
|
35
|
+
return await __classPrivateFieldGet(this, _FirefoxBinary_instances, "m", _FirefoxBinary_fetchRootDir).call(this, binaryName);
|
|
36
|
+
}
|
|
37
|
+
return await __classPrivateFieldGet(this, _FirefoxBinary_instances, "m", _FirefoxBinary_fetchSubDir).call(this, dir, binaryName);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
_FirefoxBinary_instances = new WeakSet();
|
|
41
|
+
_FirefoxBinary_fetchRootDir =
|
|
42
|
+
// Use Mozilla's product-details JSON API to list Firefox versions
|
|
43
|
+
async function _FirefoxBinary_fetchRootDir(binaryName) {
|
|
44
|
+
const binaryConfig = binaries[binaryName];
|
|
45
|
+
const data = await this.requestJSON(PRODUCT_DETAILS_URL);
|
|
46
|
+
const items = __classPrivateFieldGet(this, _FirefoxBinary_instances, "m", _FirefoxBinary_parseProductDetails).call(this, data, binaryConfig.options?.ignoreDownloadStatuses);
|
|
47
|
+
return { items, nextParams: null };
|
|
48
|
+
};
|
|
49
|
+
_FirefoxBinary_parseProductDetails = function _FirefoxBinary_parseProductDetails(data, ignoreDownloadStatuses) {
|
|
50
|
+
const versionSet = new Set();
|
|
51
|
+
for (const release of Object.values(data.releases)) {
|
|
52
|
+
const version = release.version;
|
|
53
|
+
versionSet.add(version);
|
|
54
|
+
}
|
|
55
|
+
const items = [];
|
|
56
|
+
for (const version of versionSet) {
|
|
57
|
+
// Filter out old Firefox versions (< 100.0.0)
|
|
58
|
+
const match = /^(\d+)/.exec(version);
|
|
59
|
+
if (match) {
|
|
60
|
+
const major = Number.parseInt(match[1]);
|
|
61
|
+
if (major < 100) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const name = `${version}/`;
|
|
66
|
+
items.push({
|
|
67
|
+
name,
|
|
68
|
+
isDir: true,
|
|
69
|
+
url: '',
|
|
70
|
+
size: '-',
|
|
71
|
+
date: '-',
|
|
72
|
+
ignoreDownloadStatuses,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// Add special directories
|
|
76
|
+
for (const special of ['latest/', 'latest-beta/', 'latest-esr/']) {
|
|
77
|
+
items.push({
|
|
78
|
+
name: special,
|
|
79
|
+
isDir: true,
|
|
80
|
+
url: '',
|
|
81
|
+
size: '-',
|
|
82
|
+
date: '-',
|
|
83
|
+
ignoreDownloadStatuses,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return items;
|
|
87
|
+
};
|
|
88
|
+
_FirefoxBinary_fetchSubDir =
|
|
89
|
+
// Parse Mozilla archive HTML directory listing for subdirectories
|
|
90
|
+
async function _FirefoxBinary_fetchSubDir(dir, binaryName) {
|
|
91
|
+
const binaryConfig = binaries[binaryName];
|
|
92
|
+
const url = `${binaryConfig.distUrl}${dir}`;
|
|
93
|
+
const html = await this.requestXml(url);
|
|
94
|
+
// Mozilla archive has format like:
|
|
95
|
+
// <tr>
|
|
96
|
+
// <td>Dir</td>
|
|
97
|
+
// <td><a href="/pub/firefox/releases/131.0.3/update/">update/</a></td>
|
|
98
|
+
// <td></td>
|
|
99
|
+
// <td></td>
|
|
100
|
+
// </tr>
|
|
101
|
+
// <tr>
|
|
102
|
+
// <td>File</td>
|
|
103
|
+
// <td><a href="/pub/firefox/releases/131.0.3/SHA256SUMS.asc">SHA256SUMS.asc</a></td>
|
|
104
|
+
// <td>833</td>
|
|
105
|
+
// <td>12-Apr-2025 08:52</td>
|
|
106
|
+
// </tr>
|
|
107
|
+
// Parse Mozilla directory listing format - handles two different formats:
|
|
108
|
+
// Format 1 (main index): <td><a href="/path/">name/</a></td>
|
|
109
|
+
// Format 2 (version dir): <td>Type</td><td><a href="/path/">name</a></td><td>size</td><td>date</td>
|
|
110
|
+
// Try the detailed format first (with Type/Size/Date columns)
|
|
111
|
+
const detailedRe = /<tr>\s*<td>(Dir|File)<\/td>\s*<td><a href="([^"]+?)"[^>]*?>[^<]+?<\/a><\/td>\s*<td>([^<]*?)<\/td>\s*<td>([^<]*?)<\/td>\s*<\/tr>/gi;
|
|
112
|
+
const detailedMatches = Array.from(html.matchAll(detailedRe));
|
|
113
|
+
let matchs;
|
|
114
|
+
let useDetailedFormat = false;
|
|
115
|
+
if (detailedMatches.length > 0) {
|
|
116
|
+
// Use detailed format
|
|
117
|
+
matchs = detailedMatches;
|
|
118
|
+
useDetailedFormat = true;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
// Fallback to simple format
|
|
122
|
+
const simpleRe = /<td><a href="([^"]+?)"[^>]*?>[^<]+?<\/a><\/td>/gi;
|
|
123
|
+
matchs = Array.from(html.matchAll(simpleRe));
|
|
124
|
+
}
|
|
125
|
+
const items = [];
|
|
126
|
+
for (const m of matchs) {
|
|
127
|
+
let href;
|
|
128
|
+
let isDir;
|
|
129
|
+
let size;
|
|
130
|
+
let date;
|
|
131
|
+
if (useDetailedFormat) {
|
|
132
|
+
// Detailed format: [fullMatch, type, href, size, date]
|
|
133
|
+
const type = m[1]; // "Dir" or "File"
|
|
134
|
+
href = m[2];
|
|
135
|
+
size = m[3].trim() || '-';
|
|
136
|
+
date = m[4].trim() || '-';
|
|
137
|
+
isDir = type === 'Dir';
|
|
47
138
|
}
|
|
48
139
|
else {
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
140
|
+
// Simple format: [fullMatch, href]
|
|
141
|
+
href = m[1];
|
|
142
|
+
isDir = href.endsWith('/');
|
|
143
|
+
size = '-';
|
|
144
|
+
date = '-';
|
|
52
145
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
href = m[2];
|
|
63
|
-
size = m[3].trim() || '-';
|
|
64
|
-
date = m[4].trim() || '-';
|
|
65
|
-
isDir = type === 'Dir';
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
// Simple format: [fullMatch, href]
|
|
69
|
-
href = m[1];
|
|
70
|
-
isDir = href.endsWith('/');
|
|
71
|
-
size = '-';
|
|
72
|
-
date = '-';
|
|
73
|
-
}
|
|
74
|
-
// Extract the name from the href path
|
|
75
|
-
// href could be "/pub/firefox/releases/130.0/" or just "130.0/"
|
|
76
|
-
let name = href;
|
|
77
|
-
if (href.startsWith('/')) {
|
|
78
|
-
// Extract the last part of the path
|
|
79
|
-
const parts = href.split('/').filter(Boolean);
|
|
80
|
-
name = parts[parts.length - 1] ?? '';
|
|
81
|
-
if (href.endsWith('/')) {
|
|
82
|
-
name += '/';
|
|
83
|
-
}
|
|
146
|
+
// Extract the name from the href path
|
|
147
|
+
// href could be "/pub/firefox/releases/130.0/" or just "130.0/"
|
|
148
|
+
let name = href;
|
|
149
|
+
if (href.startsWith('/')) {
|
|
150
|
+
// Extract the last part of the path
|
|
151
|
+
const parts = href.split('/').filter(Boolean);
|
|
152
|
+
name = parts[parts.length - 1] ?? '';
|
|
153
|
+
if (href.endsWith('/')) {
|
|
154
|
+
name += '/';
|
|
84
155
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
catch {
|
|
104
|
-
// If version parsing fails, skip this directory
|
|
105
|
-
continue;
|
|
156
|
+
}
|
|
157
|
+
if (!isDir) {
|
|
158
|
+
// Keep the full name for files
|
|
159
|
+
name = basename(name);
|
|
160
|
+
}
|
|
161
|
+
// Skip parent directory links
|
|
162
|
+
if (name === '../' || href === '/pub/firefox/' || href.endsWith('/..') || href === '/pub/firefox/releases/')
|
|
163
|
+
continue;
|
|
164
|
+
// Filter out old Firefox versions (< 100.0.0) for directories - apply to main index (root directory)
|
|
165
|
+
if (isDir && name !== '../' && dir === '/') {
|
|
166
|
+
const versionName = name.slice(0, -1); // Remove trailing '/'
|
|
167
|
+
// Skip non-version directories that are just special names
|
|
168
|
+
if (/^\d+\.\d+/.test(versionName)) {
|
|
169
|
+
try {
|
|
170
|
+
const major = Number.parseInt(versionName.split('.')[0]);
|
|
171
|
+
if (major < 100) {
|
|
172
|
+
continue; // Skip versions < 100.0.0
|
|
106
173
|
}
|
|
107
174
|
}
|
|
108
|
-
|
|
109
|
-
|
|
175
|
+
catch {
|
|
176
|
+
// If version parsing fails, skip this directory
|
|
110
177
|
continue;
|
|
111
178
|
}
|
|
112
179
|
}
|
|
113
|
-
|
|
114
|
-
if (
|
|
180
|
+
// Also skip named directories that aren't version numbers
|
|
181
|
+
else if (!['latest', 'latest-beta', 'latest-esr'].includes(versionName)) {
|
|
115
182
|
continue;
|
|
116
|
-
|
|
117
|
-
name,
|
|
118
|
-
isDir,
|
|
119
|
-
url: fileUrl,
|
|
120
|
-
size,
|
|
121
|
-
date,
|
|
122
|
-
ignoreDownloadStatuses: binaryConfig.options?.ignoreDownloadStatuses,
|
|
123
|
-
};
|
|
124
|
-
items.push(item);
|
|
183
|
+
}
|
|
125
184
|
}
|
|
126
|
-
|
|
185
|
+
const fileUrl = isDir ? '' : `${url}${name}`;
|
|
186
|
+
if (binaryConfig.ignoreFiles?.includes(`${dir}${name}`))
|
|
187
|
+
continue;
|
|
188
|
+
const item = {
|
|
189
|
+
name,
|
|
190
|
+
isDir,
|
|
191
|
+
url: fileUrl,
|
|
192
|
+
size,
|
|
193
|
+
date,
|
|
194
|
+
ignoreDownloadStatuses: binaryConfig.options?.ignoreDownloadStatuses,
|
|
195
|
+
};
|
|
196
|
+
items.push(item);
|
|
127
197
|
}
|
|
198
|
+
return { items, nextParams: null };
|
|
128
199
|
};
|
|
129
200
|
FirefoxBinary = __decorate([
|
|
130
201
|
SingletonProto(),
|
|
131
202
|
BinaryAdapter(BinaryType.Firefox)
|
|
132
203
|
], FirefoxBinary);
|
|
133
204
|
export { FirefoxBinary };
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlyZWZveEJpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvRmlyZWZveEJpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFckMsT0FBTyxRQUE2QixNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBcUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RywyREFBMkQ7QUFDM0QsdURBQXVEO0FBQ3ZELE1BQU0sbUJBQW1CLEdBQUcsc0RBQXNELENBQUM7QUFrQjVFLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWMsU0FBUSxjQUFjO0lBQTFDOzs7SUE4TFAsQ0FBQztJQTdMQyxLQUFLLENBQUMsU0FBUztRQUNiLGFBQWE7UUFDYixPQUFPO0lBQ1QsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVcsRUFBRSxVQUFzQjtRQUM3Qyw2REFBNkQ7UUFDN0Qsc0VBQXNFO1FBQ3RFLElBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sTUFBTSx1QkFBQSxJQUFJLDZEQUFjLE1BQWxCLElBQUksRUFBZSxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxNQUFNLHVCQUFBLElBQUksNERBQWEsTUFBakIsSUFBSSxFQUFjLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBZ0xGLENBQUE7OztBQTlLQyxrRUFBa0U7QUFDbEUsS0FBSyxzQ0FBZSxVQUFzQjtJQUN4QyxNQUFNLFlBQVksR0FBRyxRQUFRLENB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cnpmcore",
|
|
3
|
-
"version": "4.22.
|
|
3
|
+
"version": "4.22.1",
|
|
4
4
|
"description": "Private NPM Registry for Enterprise",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"npm",
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"coffee": "^5.5.1",
|
|
145
145
|
"husky": "^9.1.7",
|
|
146
146
|
"lint-staged": "^16.2.7",
|
|
147
|
-
"oxfmt": "^0.
|
|
147
|
+
"oxfmt": "^0.35.0",
|
|
148
148
|
"oxlint": "^1.32.0",
|
|
149
149
|
"oxlint-tsgolint": "^0.14.2",
|
|
150
150
|
"typescript": "^5.9.3"
|