extension-from-store 0.2.1 → 0.2.2
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.
- package/dist/588.js +211 -0
- package/dist/browser.cjs +21 -29
- package/dist/browser.js +14 -226
- package/dist/core.cjs +29 -36
- package/dist/core.js +1 -222
- package/dist/index.cjs +18 -25
- package/dist/index.js +41 -256
- package/package.json +7 -7
package/dist/core.cjs
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -13,7 +17,7 @@ var __webpack_require__ = {};
|
|
|
13
17
|
})();
|
|
14
18
|
(()=>{
|
|
15
19
|
__webpack_require__.r = (exports1)=>{
|
|
16
|
-
if (
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
21
|
value: 'Module'
|
|
18
22
|
});
|
|
19
23
|
Object.defineProperty(exports1, '__esModule', {
|
|
@@ -24,22 +28,22 @@ var __webpack_require__ = {};
|
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
31
|
+
asExtensionFromStoreError: ()=>asExtensionFromStoreError,
|
|
32
|
+
createLogger: ()=>createLogger,
|
|
28
33
|
detectStoreFromUrl: ()=>detectStoreFromUrl,
|
|
34
|
+
extensionFromStoreError: ()=>extensionFromStoreError,
|
|
29
35
|
extractChromeIdFromUrl: ()=>extractChromeIdFromUrl,
|
|
30
|
-
|
|
31
|
-
stripCrxHeader: ()=>stripCrxHeader,
|
|
32
|
-
sanitizeSegment: ()=>sanitizeSegment,
|
|
33
|
-
getChromeDownloadUrl: ()=>getChromeDownloadUrl,
|
|
34
|
-
asExtensionFromStoreError: ()=>asExtensionFromStoreError,
|
|
36
|
+
extractEdgeIdFromUrl: ()=>extractEdgeIdFromUrl,
|
|
35
37
|
extractFirefoxSlugFromUrl: ()=>extractFirefoxSlugFromUrl,
|
|
36
|
-
|
|
37
|
-
validateInput: ()=>validateInput,
|
|
38
|
+
getChromeDownloadUrl: ()=>getChromeDownloadUrl,
|
|
38
39
|
getEdgeDownloadUrl: ()=>getEdgeDownloadUrl,
|
|
39
|
-
|
|
40
|
-
extensionFromStoreError: ()=>extensionFromStoreError,
|
|
40
|
+
normalizeChromePlatformInfo: ()=>normalizeChromePlatformInfo,
|
|
41
41
|
parseManifestInfo: ()=>parseManifestInfo,
|
|
42
|
-
|
|
42
|
+
resolveDownload: ()=>resolveDownload,
|
|
43
|
+
resolveFirefoxDownload: ()=>resolveFirefoxDownload,
|
|
44
|
+
sanitizeSegment: ()=>sanitizeSegment,
|
|
45
|
+
stripCrxHeader: ()=>stripCrxHeader,
|
|
46
|
+
validateInput: ()=>validateInput
|
|
43
47
|
});
|
|
44
48
|
function _define_property(obj, key, value) {
|
|
45
49
|
if (key in obj) Object.defineProperty(obj, key, {
|
|
@@ -64,18 +68,9 @@ function asExtensionFromStoreError(error, fallback) {
|
|
|
64
68
|
}
|
|
65
69
|
function createLogger(logger) {
|
|
66
70
|
return {
|
|
67
|
-
info: (message)=>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
warn: (message)=>{
|
|
72
|
-
var _logger_onWarn;
|
|
73
|
-
return null == logger ? void 0 : null == (_logger_onWarn = logger.onWarn) ? void 0 : _logger_onWarn.call(logger, message);
|
|
74
|
-
},
|
|
75
|
-
error: (message, error)=>{
|
|
76
|
-
var _logger_onError;
|
|
77
|
-
return null == logger ? void 0 : null == (_logger_onError = logger.onError) ? void 0 : _logger_onError.call(logger, message, error);
|
|
78
|
-
}
|
|
71
|
+
info: (message)=>logger?.onInfo?.(message),
|
|
72
|
+
warn: (message)=>logger?.onWarn?.(message),
|
|
73
|
+
error: (message, error)=>logger?.onError?.(message, error)
|
|
79
74
|
};
|
|
80
75
|
}
|
|
81
76
|
function parseManifestInfo(raw) {
|
|
@@ -138,15 +133,13 @@ function getEdgeDownloadUrl(id) {
|
|
|
138
133
|
].join('');
|
|
139
134
|
}
|
|
140
135
|
async function resolveFirefoxDownload(idOrSlug, versionHint, options) {
|
|
141
|
-
var _addon_current_version_file, _addon_current_version, _addon_current_version1;
|
|
142
136
|
const baseUrl = `https://addons.mozilla.org/api/v5/addons/addon/${encodeURIComponent(idOrSlug)}/`;
|
|
143
137
|
const addon = await options.requestJson(baseUrl, options);
|
|
144
138
|
const slugOrId = addon.slug || idOrSlug;
|
|
145
139
|
if (versionHint) {
|
|
146
|
-
var _version_file;
|
|
147
140
|
const versionUrl = `${baseUrl}versions/${encodeURIComponent(versionHint)}/`;
|
|
148
141
|
const version = await options.requestJson(versionUrl, options);
|
|
149
|
-
const downloadUrl =
|
|
142
|
+
const downloadUrl = version.file?.url;
|
|
150
143
|
if (!downloadUrl) throw new extensionFromStoreError('NotPublic', `Version ${versionHint} is not publicly downloadable`);
|
|
151
144
|
return {
|
|
152
145
|
downloadUrl,
|
|
@@ -154,8 +147,8 @@ async function resolveFirefoxDownload(idOrSlug, versionHint, options) {
|
|
|
154
147
|
slugOrId
|
|
155
148
|
};
|
|
156
149
|
}
|
|
157
|
-
const downloadUrl =
|
|
158
|
-
const version =
|
|
150
|
+
const downloadUrl = addon.current_version?.file?.url;
|
|
151
|
+
const version = addon.current_version?.version;
|
|
159
152
|
if (!downloadUrl || !version) throw new extensionFromStoreError('NotPublic', 'Extension is not publicly downloadable');
|
|
160
153
|
return {
|
|
161
154
|
downloadUrl,
|
|
@@ -278,7 +271,7 @@ exports.resolveFirefoxDownload = __webpack_exports__.resolveFirefoxDownload;
|
|
|
278
271
|
exports.sanitizeSegment = __webpack_exports__.sanitizeSegment;
|
|
279
272
|
exports.stripCrxHeader = __webpack_exports__.stripCrxHeader;
|
|
280
273
|
exports.validateInput = __webpack_exports__.validateInput;
|
|
281
|
-
for(var
|
|
274
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
282
275
|
"asExtensionFromStoreError",
|
|
283
276
|
"createLogger",
|
|
284
277
|
"detectStoreFromUrl",
|
|
@@ -295,7 +288,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
|
295
288
|
"sanitizeSegment",
|
|
296
289
|
"stripCrxHeader",
|
|
297
290
|
"validateInput"
|
|
298
|
-
].indexOf(
|
|
291
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
299
292
|
Object.defineProperty(exports, '__esModule', {
|
|
300
293
|
value: true
|
|
301
294
|
});
|
package/dist/core.js
CHANGED
|
@@ -1,222 +1 @@
|
|
|
1
|
-
|
|
2
|
-
if (key in obj) Object.defineProperty(obj, key, {
|
|
3
|
-
value: value,
|
|
4
|
-
enumerable: true,
|
|
5
|
-
configurable: true,
|
|
6
|
-
writable: true
|
|
7
|
-
});
|
|
8
|
-
else obj[key] = value;
|
|
9
|
-
return obj;
|
|
10
|
-
}
|
|
11
|
-
class extensionFromStoreError extends Error {
|
|
12
|
-
constructor(code, message, cause){
|
|
13
|
-
super(message), _define_property(this, "code", void 0), _define_property(this, "cause", void 0);
|
|
14
|
-
this.code = code;
|
|
15
|
-
this.cause = cause;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function asExtensionFromStoreError(error, fallback) {
|
|
19
|
-
if (error instanceof extensionFromStoreError) return error;
|
|
20
|
-
return new extensionFromStoreError(fallback.code, fallback.message, error);
|
|
21
|
-
}
|
|
22
|
-
function createLogger(logger) {
|
|
23
|
-
return {
|
|
24
|
-
info: (message)=>{
|
|
25
|
-
var _logger_onInfo;
|
|
26
|
-
return null == logger ? void 0 : null == (_logger_onInfo = logger.onInfo) ? void 0 : _logger_onInfo.call(logger, message);
|
|
27
|
-
},
|
|
28
|
-
warn: (message)=>{
|
|
29
|
-
var _logger_onWarn;
|
|
30
|
-
return null == logger ? void 0 : null == (_logger_onWarn = logger.onWarn) ? void 0 : _logger_onWarn.call(logger, message);
|
|
31
|
-
},
|
|
32
|
-
error: (message, error)=>{
|
|
33
|
-
var _logger_onError;
|
|
34
|
-
return null == logger ? void 0 : null == (_logger_onError = logger.onError) ? void 0 : _logger_onError.call(logger, message, error);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function parseManifestInfo(raw) {
|
|
39
|
-
let parsed;
|
|
40
|
-
try {
|
|
41
|
-
parsed = JSON.parse(raw);
|
|
42
|
-
} catch (error) {
|
|
43
|
-
throw new extensionFromStoreError('ExtractionFailed', 'manifest.json is not valid JSON', error);
|
|
44
|
-
}
|
|
45
|
-
if (!parsed || 'object' != typeof parsed || Array.isArray(parsed)) throw new extensionFromStoreError('ExtractionFailed', 'manifest.json must contain an object');
|
|
46
|
-
const manifest = parsed;
|
|
47
|
-
const manifestVersion = manifest.manifest_version;
|
|
48
|
-
const extensionVersion = manifest.version;
|
|
49
|
-
if (2 !== manifestVersion && 3 !== manifestVersion) throw new extensionFromStoreError('ExtractionFailed', 'manifest_version must be 2 or 3');
|
|
50
|
-
if (!extensionVersion || 'string' != typeof extensionVersion) throw new extensionFromStoreError('ExtractionFailed', 'manifest.json is missing a version');
|
|
51
|
-
return {
|
|
52
|
-
manifest,
|
|
53
|
-
manifestVersion,
|
|
54
|
-
extensionVersion
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
function normalizeChromePlatformInfo(platform) {
|
|
58
|
-
return {
|
|
59
|
-
os: platform.os,
|
|
60
|
-
arch: platform.arch,
|
|
61
|
-
naclArch: platform.naclArch || platform.arch
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
const DEFAULT_CHROME_PLATFORM = {
|
|
65
|
-
os: 'linux',
|
|
66
|
-
arch: 'x64'
|
|
67
|
-
};
|
|
68
|
-
function getChromeDownloadUrl(id, platformInfo = DEFAULT_CHROME_PLATFORM) {
|
|
69
|
-
const encoded = encodeURIComponent(id);
|
|
70
|
-
const platform = normalizeChromePlatformInfo(platformInfo);
|
|
71
|
-
const productId = 'chromiumcrx';
|
|
72
|
-
const productChannel = 'unknown';
|
|
73
|
-
const productVersion = '9999.0.9999.0';
|
|
74
|
-
return [
|
|
75
|
-
'https://clients2.google.com/service/update2/crx',
|
|
76
|
-
'?response=redirect',
|
|
77
|
-
`&os=${platform.os}`,
|
|
78
|
-
`&arch=${platform.arch}`,
|
|
79
|
-
`&os_arch=${platform.arch}`,
|
|
80
|
-
`&nacl_arch=${platform.naclArch}`,
|
|
81
|
-
`&prod=${productId}`,
|
|
82
|
-
`&prodchannel=${productChannel}`,
|
|
83
|
-
`&prodversion=${productVersion}`,
|
|
84
|
-
'&acceptformat=crx2,crx3',
|
|
85
|
-
`&x=id%3D${encoded}%26uc`
|
|
86
|
-
].join('');
|
|
87
|
-
}
|
|
88
|
-
function getEdgeDownloadUrl(id) {
|
|
89
|
-
const encoded = encodeURIComponent(id);
|
|
90
|
-
return [
|
|
91
|
-
'https://edge.microsoft.com/extensionwebstorebase/v1/crx',
|
|
92
|
-
'?response=redirect',
|
|
93
|
-
'&prodversion=109.0.0.0',
|
|
94
|
-
`&x=id%3D${encoded}%26installsource%3Dondemand%26uc`
|
|
95
|
-
].join('');
|
|
96
|
-
}
|
|
97
|
-
async function resolveFirefoxDownload(idOrSlug, versionHint, options) {
|
|
98
|
-
var _addon_current_version_file, _addon_current_version, _addon_current_version1;
|
|
99
|
-
const baseUrl = `https://addons.mozilla.org/api/v5/addons/addon/${encodeURIComponent(idOrSlug)}/`;
|
|
100
|
-
const addon = await options.requestJson(baseUrl, options);
|
|
101
|
-
const slugOrId = addon.slug || idOrSlug;
|
|
102
|
-
if (versionHint) {
|
|
103
|
-
var _version_file;
|
|
104
|
-
const versionUrl = `${baseUrl}versions/${encodeURIComponent(versionHint)}/`;
|
|
105
|
-
const version = await options.requestJson(versionUrl, options);
|
|
106
|
-
const downloadUrl = null == (_version_file = version.file) ? void 0 : _version_file.url;
|
|
107
|
-
if (!downloadUrl) throw new extensionFromStoreError('NotPublic', `Version ${versionHint} is not publicly downloadable`);
|
|
108
|
-
return {
|
|
109
|
-
downloadUrl,
|
|
110
|
-
version: version.version || versionHint,
|
|
111
|
-
slugOrId
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
const downloadUrl = null == (_addon_current_version = addon.current_version) ? void 0 : null == (_addon_current_version_file = _addon_current_version.file) ? void 0 : _addon_current_version_file.url;
|
|
115
|
-
const version = null == (_addon_current_version1 = addon.current_version) ? void 0 : _addon_current_version1.version;
|
|
116
|
-
if (!downloadUrl || !version) throw new extensionFromStoreError('NotPublic', 'Extension is not publicly downloadable');
|
|
117
|
-
return {
|
|
118
|
-
downloadUrl,
|
|
119
|
-
version,
|
|
120
|
-
slugOrId
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
const chromePattern = /^https?:\/\/(?:chrome\.google\.com\/webstore|chromewebstore\.google\.com)\/.+?\/([a-p]{32})(?=[\/#?]|$)/i;
|
|
124
|
-
const chromeDownloadPattern = /^https?:\/\/clients2\.google\.com\/service\/update2\/crx\b.*?%3D([a-p]{32})%26uc/i;
|
|
125
|
-
const edgePattern = /^https?:\/\/microsoftedge\.microsoft\.com\/addons\/.+?\/([a-z]{32})(?=[\/#?]|$)/i;
|
|
126
|
-
const edgeDownloadPattern = /^https?:\/\/edge\.microsoft\.com\/extensionwebstorebase\/v1\/crx\b.*?%3D([a-z]{32})%26/i;
|
|
127
|
-
const firefoxPattern = /^https?:\/\/((?:reviewers\.)?(?:addons\.mozilla\.org|addons(?:-dev)?\.allizom\.org))\/.*?(?:addon|review)\/([^/<>"'?#]+)/i;
|
|
128
|
-
const firefoxDownloadPattern = /^https?:\/\/(addons\.mozilla\.org|addons(?:-dev)?\.allizom\.org)\/[^?#]*\/downloads\/latest\/([^/?#]+)/i;
|
|
129
|
-
function detectStoreFromUrl(url) {
|
|
130
|
-
if (chromePattern.test(url) || chromeDownloadPattern.test(url)) return 'chrome';
|
|
131
|
-
if (edgePattern.test(url) || edgeDownloadPattern.test(url)) return 'edge';
|
|
132
|
-
if (firefoxPattern.test(url) || firefoxDownloadPattern.test(url)) return 'firefox';
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
function extractChromeIdFromUrl(url) {
|
|
136
|
-
const match = chromePattern.exec(url) || chromeDownloadPattern.exec(url);
|
|
137
|
-
return match ? match[1] : null;
|
|
138
|
-
}
|
|
139
|
-
function extractEdgeIdFromUrl(url) {
|
|
140
|
-
const match = edgePattern.exec(url) || edgeDownloadPattern.exec(url);
|
|
141
|
-
return match ? match[1] : null;
|
|
142
|
-
}
|
|
143
|
-
function extractFirefoxSlugFromUrl(url) {
|
|
144
|
-
const match = firefoxPattern.exec(url) || firefoxDownloadPattern.exec(url);
|
|
145
|
-
return match ? match[2] : null;
|
|
146
|
-
}
|
|
147
|
-
function validateInput(url) {
|
|
148
|
-
if (!url || 'string' != typeof url) throw new extensionFromStoreError('InvalidInput', 'URL is required');
|
|
149
|
-
}
|
|
150
|
-
function sanitizeSegment(value, label) {
|
|
151
|
-
const sanitized = value.replace(/[\\/]/g, '-').trim();
|
|
152
|
-
if (!sanitized) throw new extensionFromStoreError('InvalidInput', `${label} is not a valid path segment`);
|
|
153
|
-
return sanitized;
|
|
154
|
-
}
|
|
155
|
-
async function resolveDownload(url, options) {
|
|
156
|
-
const store = detectStoreFromUrl(url);
|
|
157
|
-
if (!store) throw new extensionFromStoreError('UnsupportedStore', 'URL does not match a supported store');
|
|
158
|
-
if ('chrome' === store) {
|
|
159
|
-
const downloadId = extractChromeIdFromUrl(url);
|
|
160
|
-
if (!downloadId) throw new extensionFromStoreError('NotFound', 'Chrome extension id not found in URL');
|
|
161
|
-
return {
|
|
162
|
-
store,
|
|
163
|
-
downloadUrl: getChromeDownloadUrl(downloadId, options.platform),
|
|
164
|
-
archiveType: 'crx',
|
|
165
|
-
downloadId,
|
|
166
|
-
slugOrId: downloadId
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
if ('edge' === store) {
|
|
170
|
-
const downloadId = extractEdgeIdFromUrl(url);
|
|
171
|
-
if (!downloadId) throw new extensionFromStoreError('NotFound', 'Edge extension id not found in URL');
|
|
172
|
-
return {
|
|
173
|
-
store,
|
|
174
|
-
downloadUrl: getEdgeDownloadUrl(downloadId),
|
|
175
|
-
archiveType: 'crx',
|
|
176
|
-
downloadId,
|
|
177
|
-
slugOrId: downloadId
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
const slug = extractFirefoxSlugFromUrl(url);
|
|
181
|
-
if (!slug) throw new extensionFromStoreError('NotFound', 'Firefox extension slug not found in URL');
|
|
182
|
-
const firefox = await resolveFirefoxDownload(slug, options.version, {
|
|
183
|
-
userAgent: options.userAgent,
|
|
184
|
-
logger: options.logger,
|
|
185
|
-
requestJson: options.requestJson
|
|
186
|
-
});
|
|
187
|
-
return {
|
|
188
|
-
store,
|
|
189
|
-
downloadUrl: firefox.downloadUrl,
|
|
190
|
-
archiveType: 'xpi',
|
|
191
|
-
versionHint: firefox.version,
|
|
192
|
-
slugOrId: firefox.slugOrId
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
function readUInt32LE(bytes, offset) {
|
|
196
|
-
const view = new DataView(bytes.buffer, bytes.byteOffset + offset, Uint32Array.BYTES_PER_ELEMENT);
|
|
197
|
-
return view.getUint32(0, true);
|
|
198
|
-
}
|
|
199
|
-
function readMagic(bytes) {
|
|
200
|
-
let out = '';
|
|
201
|
-
const slice = bytes.subarray(0, 4);
|
|
202
|
-
for(let index = 0; index < slice.length; index += 1)out += String.fromCharCode(slice[index]);
|
|
203
|
-
return out;
|
|
204
|
-
}
|
|
205
|
-
function stripCrxHeader(buffer) {
|
|
206
|
-
if (buffer.length < 16) throw new extensionFromStoreError('ExtractionFailed', 'CRX file too small');
|
|
207
|
-
const magic = readMagic(buffer);
|
|
208
|
-
if ('Cr24' !== magic) throw new extensionFromStoreError('ExtractionFailed', 'Invalid CRX header');
|
|
209
|
-
const version = readUInt32LE(buffer, 4);
|
|
210
|
-
if (2 === version) {
|
|
211
|
-
const publicKeyLength = readUInt32LE(buffer, 8);
|
|
212
|
-
const signatureLength = readUInt32LE(buffer, 12);
|
|
213
|
-
const headerSize = 16 + publicKeyLength + signatureLength;
|
|
214
|
-
return buffer.subarray(headerSize);
|
|
215
|
-
}
|
|
216
|
-
if (3 === version) {
|
|
217
|
-
const headerSize = readUInt32LE(buffer, 8);
|
|
218
|
-
return buffer.subarray(12 + headerSize);
|
|
219
|
-
}
|
|
220
|
-
throw new extensionFromStoreError('ExtractionFailed', `Unsupported CRX version ${version}`);
|
|
221
|
-
}
|
|
222
|
-
export { asExtensionFromStoreError, createLogger, detectStoreFromUrl, extensionFromStoreError, extractChromeIdFromUrl, extractEdgeIdFromUrl, extractFirefoxSlugFromUrl, getChromeDownloadUrl, getEdgeDownloadUrl, normalizeChromePlatformInfo, parseManifestInfo, resolveDownload, resolveFirefoxDownload, sanitizeSegment, stripCrxHeader, validateInput };
|
|
1
|
+
export { asExtensionFromStoreError, createLogger, detectStoreFromUrl, extensionFromStoreError, extractChromeIdFromUrl, extractEdgeIdFromUrl, extractFirefoxSlugFromUrl, getChromeDownloadUrl, getEdgeDownloadUrl, normalizeChromePlatformInfo, parseManifestInfo, resolveDownload, resolveFirefoxDownload, sanitizeSegment, stripCrxHeader, validateInput } from "./588.js";
|
package/dist/index.cjs
CHANGED
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -22,7 +26,7 @@ var __webpack_require__ = {};
|
|
|
22
26
|
})();
|
|
23
27
|
(()=>{
|
|
24
28
|
__webpack_require__.r = (exports1)=>{
|
|
25
|
-
if (
|
|
29
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
26
30
|
value: 'Module'
|
|
27
31
|
});
|
|
28
32
|
Object.defineProperty(exports1, '__esModule', {
|
|
@@ -113,18 +117,9 @@ const external_node_stream_promises_namespaceObject = require("node:stream/promi
|
|
|
113
117
|
const external_node_url_namespaceObject = require("node:url");
|
|
114
118
|
function createLogger(logger) {
|
|
115
119
|
return {
|
|
116
|
-
info: (message)=>
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
},
|
|
120
|
-
warn: (message)=>{
|
|
121
|
-
var _logger_onWarn;
|
|
122
|
-
return null == logger ? void 0 : null == (_logger_onWarn = logger.onWarn) ? void 0 : _logger_onWarn.call(logger, message);
|
|
123
|
-
},
|
|
124
|
-
error: (message, error)=>{
|
|
125
|
-
var _logger_onError;
|
|
126
|
-
return null == logger ? void 0 : null == (_logger_onError = logger.onError) ? void 0 : _logger_onError.call(logger, message, error);
|
|
127
|
-
}
|
|
120
|
+
info: (message)=>logger?.onInfo?.(message),
|
|
121
|
+
warn: (message)=>logger?.onWarn?.(message),
|
|
122
|
+
error: (message, error)=>logger?.onError?.(message, error)
|
|
128
123
|
};
|
|
129
124
|
}
|
|
130
125
|
const DEFAULT_USER_AGENT = 'extension-from-store';
|
|
@@ -273,15 +268,13 @@ function getEdgeDownloadUrl(id) {
|
|
|
273
268
|
].join('');
|
|
274
269
|
}
|
|
275
270
|
async function resolveFirefoxDownload(idOrSlug, versionHint, options) {
|
|
276
|
-
var _addon_current_version_file, _addon_current_version, _addon_current_version1;
|
|
277
271
|
const baseUrl = `https://addons.mozilla.org/api/v5/addons/addon/${encodeURIComponent(idOrSlug)}/`;
|
|
278
272
|
const addon = await options.requestJson(baseUrl, options);
|
|
279
273
|
const slugOrId = addon.slug || idOrSlug;
|
|
280
274
|
if (versionHint) {
|
|
281
|
-
var _version_file;
|
|
282
275
|
const versionUrl = `${baseUrl}versions/${encodeURIComponent(versionHint)}/`;
|
|
283
276
|
const version = await options.requestJson(versionUrl, options);
|
|
284
|
-
const downloadUrl =
|
|
277
|
+
const downloadUrl = version.file?.url;
|
|
285
278
|
if (!downloadUrl) throw new errors_extensionFromStoreError('NotPublic', `Version ${versionHint} is not publicly downloadable`);
|
|
286
279
|
return {
|
|
287
280
|
downloadUrl,
|
|
@@ -289,8 +282,8 @@ async function resolveFirefoxDownload(idOrSlug, versionHint, options) {
|
|
|
289
282
|
slugOrId
|
|
290
283
|
};
|
|
291
284
|
}
|
|
292
|
-
const downloadUrl =
|
|
293
|
-
const version =
|
|
285
|
+
const downloadUrl = addon.current_version?.file?.url;
|
|
286
|
+
const version = addon.current_version?.version;
|
|
294
287
|
if (!downloadUrl || !version) throw new errors_extensionFromStoreError('NotPublic', 'Extension is not publicly downloadable');
|
|
295
288
|
return {
|
|
296
289
|
downloadUrl,
|
|
@@ -466,10 +459,10 @@ async function fetchExtensionFromStore(url, options = {}) {
|
|
|
466
459
|
}
|
|
467
460
|
exports.extensionFromStoreError = __webpack_exports__.extensionFromStoreError;
|
|
468
461
|
exports.fetchExtensionFromStore = __webpack_exports__.fetchExtensionFromStore;
|
|
469
|
-
for(var
|
|
462
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
470
463
|
"extensionFromStoreError",
|
|
471
464
|
"fetchExtensionFromStore"
|
|
472
|
-
].indexOf(
|
|
465
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
473
466
|
Object.defineProperty(exports, '__esModule', {
|
|
474
467
|
value: true
|
|
475
468
|
});
|