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
- const binaryConfig = binaries[binaryName];
20
- const url = `${binaryConfig.distUrl}${dir}`;
21
- const html = await this.requestXml(url);
22
- // Mozilla archive has format like:
23
- // <tr>
24
- // <td>Dir</td>
25
- // <td><a href="/pub/firefox/releases/131.0.3/update/">update/</a></td>
26
- // <td></td>
27
- // <td></td>
28
- // </tr>
29
- // <tr>
30
- // <td>File</td>
31
- // <td><a href="/pub/firefox/releases/131.0.3/SHA256SUMS.asc">SHA256SUMS.asc</a></td>
32
- // <td>833</td>
33
- // <td>12-Apr-2025 08:52</td>
34
- // </tr>
35
- // Parse Mozilla directory listing format - handles two different formats:
36
- // Format 1 (main index): <td><a href="/path/">name/</a></td>
37
- // Format 2 (version dir): <td>Type</td><td><a href="/path/">name</a></td><td>size</td><td>date</td>
38
- // Try the detailed format first (with Type/Size/Date columns)
39
- const detailedRe = /<tr>\s*<td>(Dir|File)<\/td>\s*<td><a href="([^"]+?)"[^>]*?>[^<]+?<\/a><\/td>\s*<td>([^<]*?)<\/td>\s*<td>([^<]*?)<\/td>\s*<\/tr>/gi;
40
- const detailedMatches = Array.from(html.matchAll(detailedRe));
41
- let matchs;
42
- let useDetailedFormat = false;
43
- if (detailedMatches.length > 0) {
44
- // Use detailed format
45
- matchs = detailedMatches;
46
- useDetailedFormat = true;
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
- // Fallback to simple format
50
- const simpleRe = /<td><a href="([^"]+?)"[^>]*?>[^<]+?<\/a><\/td>/gi;
51
- matchs = Array.from(html.matchAll(simpleRe));
140
+ // Simple format: [fullMatch, href]
141
+ href = m[1];
142
+ isDir = href.endsWith('/');
143
+ size = '-';
144
+ date = '-';
52
145
  }
53
- const items = [];
54
- for (const m of matchs) {
55
- let href;
56
- let isDir;
57
- let size;
58
- let date;
59
- if (useDetailedFormat) {
60
- // Detailed format: [fullMatch, type, href, size, date]
61
- const type = m[1]; // "Dir" or "File"
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
- if (!isDir) {
86
- // Keep the full name for files
87
- name = basename(name);
88
- }
89
- // Skip parent directory links
90
- if (name === '../' || href === '/pub/firefox/' || href.endsWith('/..') || href === '/pub/firefox/releases/')
91
- continue;
92
- // Filter out old Firefox versions (< 100.0.0) for directories - apply to main index (root directory)
93
- if (isDir && name !== '../' && dir === '/') {
94
- const versionName = name.slice(0, -1); // Remove trailing '/'
95
- // Skip non-version directories that are just special names
96
- if (/^\d+\.\d+/.test(versionName)) {
97
- try {
98
- const major = Number.parseInt(versionName.split('.')[0]);
99
- if (major < 100) {
100
- continue; // Skip versions < 100.0.0
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
- // Also skip named directories that aren't version numbers
109
- else if (!['latest', 'latest-beta', 'latest-esr'].includes(versionName)) {
175
+ catch {
176
+ // If version parsing fails, skip this directory
110
177
  continue;
111
178
  }
112
179
  }
113
- const fileUrl = isDir ? '' : `${url}${name}`;
114
- if (binaryConfig.ignoreFiles?.includes(`${dir}${name}`))
180
+ // Also skip named directories that aren't version numbers
181
+ else if (!['latest', 'latest-beta', 'latest-esr'].includes(versionName)) {
115
182
  continue;
116
- const item = {
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
- return { items, nextParams: null };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlyZWZveEJpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvRmlyZWZveEJpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFckMsT0FBTyxRQUE2QixNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBcUMsTUFBTSxxQkFBcUIsQ0FBQztBQUloRyxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsY0FBYztJQUMvQyxLQUFLLENBQUMsU0FBUztRQUNiLGFBQWE7UUFDYixPQUFPO0lBQ1QsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVcsRUFBRSxVQUFzQjtRQUM3QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxtQ0FBbUM7UUFDbkMsT0FBTztRQUNQLHVCQUF1QjtRQUN2QiwrRUFBK0U7UUFDL0Usb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixRQUFRO1FBQ1IsT0FBTztRQUNQLHdCQUF3QjtRQUN4Qiw2RkFBNkY7UUFDN0YsdUJBQXVCO1FBQ3ZCLHFDQUFxQztRQUNyQyxRQUFRO1FBRVIsMEVBQTBFO1FBQzFFLDZEQUE2RDtRQUM3RCxvR0FBb0c7UUFFcEcsOERBQThEO1FBQzlELE1B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
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.0",
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.28.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"