jspm 2.0.0-beta.7 → 3.0.0
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/LICENSE +201 -201
- package/README.md +26 -32
- package/dist/cli.js +1391 -0
- package/jspm.js +10 -0
- package/package.json +32 -60
- package/CHANGELOG.md +0 -25
- package/bin/jspm +0 -46
- package/lib/api.d.ts +0 -10
- package/lib/api.js +0 -71
- package/lib/api.js.map +0 -1
- package/lib/build/index.d.ts +0 -24
- package/lib/build/index.js +0 -163
- package/lib/build/index.js.map +0 -1
- package/lib/cli.d.ts +0 -1
- package/lib/cli.js +0 -701
- package/lib/cli.js.map +0 -1
- package/lib/compile/cjs-convert.d.ts +0 -7
- package/lib/compile/cjs-convert.js +0 -375
- package/lib/compile/cjs-convert.js.map +0 -1
- package/lib/compile/dew-resolve.d.ts +0 -9
- package/lib/compile/dew-resolve.js +0 -117
- package/lib/compile/dew-resolve.js.map +0 -1
- package/lib/compile/dew-worker.d.ts +0 -1
- package/lib/compile/dew-worker.js +0 -302
- package/lib/compile/dew-worker.js.map +0 -1
- package/lib/config/config-file.d.ts +0 -67
- package/lib/config/config-file.js +0 -591
- package/lib/config/config-file.js.map +0 -1
- package/lib/config/global-config-file.d.ts +0 -8
- package/lib/config/global-config-file.js +0 -89
- package/lib/config/global-config-file.js.map +0 -1
- package/lib/config/index.d.ts +0 -15
- package/lib/config/index.js +0 -59
- package/lib/config/index.js.map +0 -1
- package/lib/config/jspm-file.d.ts +0 -8
- package/lib/config/jspm-file.js +0 -84
- package/lib/config/jspm-file.js.map +0 -1
- package/lib/config/package-json-file.d.ts +0 -49
- package/lib/config/package-json-file.js +0 -332
- package/lib/config/package-json-file.js.map +0 -1
- package/lib/exec/index.d.ts +0 -12
- package/lib/exec/index.js +0 -117
- package/lib/exec/index.js.map +0 -1
- package/lib/install/bin.d.ts +0 -2
- package/lib/install/bin.js +0 -85
- package/lib/install/bin.js.map +0 -1
- package/lib/install/binary-build.d.ts +0 -2
- package/lib/install/binary-build.js +0 -89
- package/lib/install/binary-build.js.map +0 -1
- package/lib/install/fetch.d.ts +0 -53
- package/lib/install/fetch.js +0 -270
- package/lib/install/fetch.js.map +0 -1
- package/lib/install/index.d.ts +0 -66
- package/lib/install/index.js +0 -1164
- package/lib/install/index.js.map +0 -1
- package/lib/install/package.d.ts +0 -142
- package/lib/install/package.js +0 -625
- package/lib/install/package.js.map +0 -1
- package/lib/install/publish.d.ts +0 -14
- package/lib/install/publish.js +0 -186
- package/lib/install/publish.js.map +0 -1
- package/lib/install/registry-manager.d.ts +0 -134
- package/lib/install/registry-manager.js +0 -521
- package/lib/install/registry-manager.js.map +0 -1
- package/lib/install/source.d.ts +0 -10
- package/lib/install/source.js +0 -378
- package/lib/install/source.js.map +0 -1
- package/lib/map/common.d.ts +0 -12
- package/lib/map/common.js +0 -182
- package/lib/map/common.js.map +0 -1
- package/lib/map/esm-lexer.d.ts +0 -17
- package/lib/map/esm-lexer.js +0 -506
- package/lib/map/esm-lexer.js.map +0 -1
- package/lib/map/index.d.ts +0 -15
- package/lib/map/index.js +0 -336
- package/lib/map/index.js.map +0 -1
- package/lib/map/utils.d.ts +0 -10
- package/lib/map/utils.js +0 -169
- package/lib/map/utils.js.map +0 -1
- package/lib/overrides.d.ts +0 -3
- package/lib/overrides.js +0 -29
- package/lib/overrides.js.map +0 -1
- package/lib/project.d.ts +0 -71
- package/lib/project.js +0 -434
- package/lib/project.js.map +0 -1
- package/lib/utils/cache.d.ts +0 -11
- package/lib/utils/cache.js +0 -121
- package/lib/utils/cache.js.map +0 -1
- package/lib/utils/common.d.ts +0 -55
- package/lib/utils/common.js +0 -267
- package/lib/utils/common.js.map +0 -1
- package/lib/utils/opts.d.ts +0 -6
- package/lib/utils/opts.js +0 -200
- package/lib/utils/opts.js.map +0 -1
- package/lib/utils/run-cmd.d.ts +0 -4
- package/lib/utils/run-cmd.js +0 -39
- package/lib/utils/run-cmd.js.map +0 -1
- package/lib/utils/ui.d.ts +0 -38
- package/lib/utils/ui.js +0 -496
- package/lib/utils/ui.js.map +0 -1
|
@@ -1,521 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright 2014-2019 Guy Bedford (http://guybedford.com)
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
const rimraf = require("rimraf");
|
|
19
|
-
const sver_1 = require("sver");
|
|
20
|
-
const fs = require("graceful-fs");
|
|
21
|
-
const path = require("path");
|
|
22
|
-
const mkdirp = require("mkdirp");
|
|
23
|
-
const package_1 = require("./package");
|
|
24
|
-
const common_1 = require("../utils/common");
|
|
25
|
-
const config_file_1 = require("../config/config-file");
|
|
26
|
-
const cache_1 = require("../utils/cache");
|
|
27
|
-
const global_config_file_1 = require("../config/global-config-file");
|
|
28
|
-
const source_1 = require("../install/source");
|
|
29
|
-
const cjs_convert_1 = require("../compile/cjs-convert");
|
|
30
|
-
const binary_build_1 = require("./binary-build");
|
|
31
|
-
const VerifyState = {
|
|
32
|
-
NOT_INSTALLED: 0,
|
|
33
|
-
INVALID: 1,
|
|
34
|
-
HASH_VALID: 2,
|
|
35
|
-
VERIFIED_VALID: 3
|
|
36
|
-
};
|
|
37
|
-
class RegistryManager {
|
|
38
|
-
constructor({ cacheDir, timeouts, Cache, userInput, offline, preferOffline, strictSSL, defaultRegistry, log, input, confirm, fetch, registries }) {
|
|
39
|
-
this.userInput = userInput;
|
|
40
|
-
this.offline = offline;
|
|
41
|
-
this.preferOffline = preferOffline;
|
|
42
|
-
this.cacheDir = cacheDir;
|
|
43
|
-
this.strictSSL = strictSSL;
|
|
44
|
-
this.timeouts = timeouts;
|
|
45
|
-
this.defaultRegistry = defaultRegistry;
|
|
46
|
-
this.instanceId = Math.round(Math.random() * 10 ** 10);
|
|
47
|
-
this.registries = registries;
|
|
48
|
-
this.util = {
|
|
49
|
-
encodeVersion: common_1.encodeInvalidFileChars,
|
|
50
|
-
JspmUserError: common_1.JspmUserError,
|
|
51
|
-
log,
|
|
52
|
-
input,
|
|
53
|
-
confirm,
|
|
54
|
-
bold: common_1.bold,
|
|
55
|
-
highlight: common_1.highlight,
|
|
56
|
-
underline: common_1.underline,
|
|
57
|
-
globalConfig: global_config_file_1.default,
|
|
58
|
-
fetch: fetch.fetch.bind(fetch),
|
|
59
|
-
getCredentials: fetch.getCredentials.bind(fetch)
|
|
60
|
-
};
|
|
61
|
-
this.fetch = fetch;
|
|
62
|
-
// note which installs have been verified in this session
|
|
63
|
-
// so we only have to perform verification once per package
|
|
64
|
-
this.verifiedCache = {};
|
|
65
|
-
this.endpoints = new Map();
|
|
66
|
-
this.cache = new Cache(path.resolve(cacheDir, 'pcfg'));
|
|
67
|
-
mkdirp.sync(path.resolve(cacheDir, 'packages'));
|
|
68
|
-
}
|
|
69
|
-
loadEndpoints() {
|
|
70
|
-
Object.keys(this.registries).forEach((registryName) => {
|
|
71
|
-
if (registryName === 'jspm')
|
|
72
|
-
return;
|
|
73
|
-
try {
|
|
74
|
-
this.getEndpoint(registryName);
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
if (err && err.code === 'REGISTRY_NOT_FOUND')
|
|
78
|
-
this.util.log.warn(err.message.substr(err.message.indexOf('\n')).trim());
|
|
79
|
-
else
|
|
80
|
-
throw err;
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
getEndpoint(name) {
|
|
85
|
-
let endpointEntry = this.endpoints.get(name);
|
|
86
|
-
if (endpointEntry)
|
|
87
|
-
return endpointEntry;
|
|
88
|
-
// config returned by config get is a new object owned by us
|
|
89
|
-
const registry = this.registries[name];
|
|
90
|
-
const config = registry.config;
|
|
91
|
-
if (config.strictSSL !== 'boolean')
|
|
92
|
-
config.strictSSL = this.strictSSL;
|
|
93
|
-
config.timeout = this.timeouts.resolve;
|
|
94
|
-
config.userInput = this.userInput;
|
|
95
|
-
config.offline = this.offline;
|
|
96
|
-
config.preferOffline = this.preferOffline;
|
|
97
|
-
let EndpointConstructor;
|
|
98
|
-
if (typeof registry.handler === "string") {
|
|
99
|
-
try {
|
|
100
|
-
EndpointConstructor = require(registry.handler);
|
|
101
|
-
}
|
|
102
|
-
catch (e) {
|
|
103
|
-
if (e && e.code === 'MODULE_NOT_FOUND') {
|
|
104
|
-
if (e.message && e.message.indexOf(registry.handler) !== -1) {
|
|
105
|
-
this.util.log.warn(`Registry module '${registry.handler}' not found loading package ${common_1.bold(name)}.
|
|
106
|
-
This may be from a previous jspm version and can be removed with ${common_1.bold(`jspm config --unset registries.${name}`)}.`);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
throw new common_1.JspmError(`Error loading registry ${common_1.bold(name)} from module '${registry.handler}'.`, 'REGISTRY_LOAD_ERROR', e);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
throw e;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
EndpointConstructor = registry.handler;
|
|
120
|
-
}
|
|
121
|
-
const endpoint = new EndpointConstructor(this.util, config);
|
|
122
|
-
const cache = new cache_1.default(path.resolve(this.cacheDir, 'registry_cache', name));
|
|
123
|
-
endpointEntry = { endpoint, cache };
|
|
124
|
-
this.endpoints.set(name, endpointEntry);
|
|
125
|
-
return endpointEntry;
|
|
126
|
-
}
|
|
127
|
-
dispose() {
|
|
128
|
-
return Promise.all(Array.from(this.endpoints.values()).map(entry => entry.endpoint.dispose ? entry.endpoint.dispose() : undefined));
|
|
129
|
-
}
|
|
130
|
-
async configure(registryName) {
|
|
131
|
-
const { endpoint } = this.getEndpoint(registryName);
|
|
132
|
-
if (!endpoint.configure)
|
|
133
|
-
throw new common_1.JspmUserError(`The ${registryName} registry doesn't have any configuration hook.`);
|
|
134
|
-
await endpoint.configure();
|
|
135
|
-
}
|
|
136
|
-
async auth(url, method, credentials, unauthorizedHeaders) {
|
|
137
|
-
for (let [registry, { endpoint }] of this.endpoints.entries()) {
|
|
138
|
-
if (!endpoint.auth)
|
|
139
|
-
continue;
|
|
140
|
-
if (await endpoint.auth(url, method, credentials, unauthorizedHeaders))
|
|
141
|
-
return registry;
|
|
142
|
-
}
|
|
143
|
-
return undefined;
|
|
144
|
-
}
|
|
145
|
-
async resolve(pkg, override, edge = false) {
|
|
146
|
-
let registry = pkg.registry || this.defaultRegistry;
|
|
147
|
-
let { endpoint, cache } = this.getEndpoint(registry);
|
|
148
|
-
let resolveRange = new sver_1.SemverRange(pkg.version || '*');
|
|
149
|
-
let lookup, resolvedVersion, redirect, resolved;
|
|
150
|
-
try {
|
|
151
|
-
// loop over any redirects
|
|
152
|
-
while (true) {
|
|
153
|
-
lookup = await cache.getUnlocked(pkg.name, this.timeouts.resolve);
|
|
154
|
-
if (resolveRange.isExact) {
|
|
155
|
-
resolvedVersion = resolveRange.version.toString();
|
|
156
|
-
lookup = lookup || { versions: {}, meta: {} };
|
|
157
|
-
}
|
|
158
|
-
else if (lookup && (this.offline || this.preferOffline)) {
|
|
159
|
-
if (lookup.redirect) {
|
|
160
|
-
redirect = lookup.redirect;
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
let versionList = Object.keys(lookup.versions);
|
|
164
|
-
resolvedVersion = resolveRange.bestMatch(versionList, edge);
|
|
165
|
-
if (resolvedVersion === undefined && edge === false)
|
|
166
|
-
resolvedVersion = resolveRange.bestMatch(versionList, true);
|
|
167
|
-
if (resolvedVersion !== undefined)
|
|
168
|
-
resolvedVersion = resolvedVersion.toString();
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (resolvedVersion === undefined && redirect === undefined) {
|
|
172
|
-
// no resolution available offline
|
|
173
|
-
if (this.offline)
|
|
174
|
-
return;
|
|
175
|
-
const unlock = await cache.lock(pkg.name, this.timeouts.resolve);
|
|
176
|
-
try {
|
|
177
|
-
// cache could have been written while we were getting the lock, although don't bother rechecking resolved as small benefit
|
|
178
|
-
lookup = await cache.get(pkg.name) || { versions: {}, meta: {} };
|
|
179
|
-
const logEnd = this.util.log.taskStart(`Looking up ${this.util.highlight(pkg.name)}`);
|
|
180
|
-
let changed;
|
|
181
|
-
try {
|
|
182
|
-
changed = await endpoint.lookup(pkg.name, resolveRange, lookup);
|
|
183
|
-
}
|
|
184
|
-
finally {
|
|
185
|
-
logEnd();
|
|
186
|
-
}
|
|
187
|
-
logEnd();
|
|
188
|
-
if (changed && common_1.hasProperties(lookup.versions))
|
|
189
|
-
cache.setUnlock(pkg.name, lookup).catch(() => { });
|
|
190
|
-
else
|
|
191
|
-
unlock().catch(() => { });
|
|
192
|
-
}
|
|
193
|
-
catch (e) {
|
|
194
|
-
unlock().catch(() => { });
|
|
195
|
-
throw e;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
if (lookup.redirect)
|
|
199
|
-
redirect = lookup.redirect;
|
|
200
|
-
if (redirect) {
|
|
201
|
-
var redirects = redirects || [];
|
|
202
|
-
redirects.push(redirect);
|
|
203
|
-
if (redirects.indexOf(redirect) !== redirects.length - 1)
|
|
204
|
-
throw new common_1.JspmUserError(`Circular redirect during lookup - ${redirects.join(' -> ')}.`);
|
|
205
|
-
// loop while redirecting
|
|
206
|
-
let redirectPkg = package_1.parsePackageName(redirect);
|
|
207
|
-
pkg = redirectPkg;
|
|
208
|
-
({ endpoint, cache } = this.getEndpoint(registry = pkg.registry));
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
if (resolvedVersion === undefined) {
|
|
212
|
-
const versionList = Object.keys(lookup.versions);
|
|
213
|
-
resolvedVersion = resolveRange.bestMatch(versionList, edge);
|
|
214
|
-
if (resolvedVersion === undefined && edge === false)
|
|
215
|
-
resolvedVersion = resolveRange.bestMatch(versionList, true);
|
|
216
|
-
if (resolvedVersion !== undefined)
|
|
217
|
-
resolvedVersion = resolvedVersion.toString();
|
|
218
|
-
}
|
|
219
|
-
// 404
|
|
220
|
-
if (!resolvedVersion)
|
|
221
|
-
return;
|
|
222
|
-
let version = lookup.versions[resolvedVersion];
|
|
223
|
-
if ((this.preferOffline || this.offline) && version && version.resolved) {
|
|
224
|
-
resolved = version.resolved;
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
if (this.offline)
|
|
228
|
-
return;
|
|
229
|
-
// this could result in a cache change... but it's local so we don't lock before we start
|
|
230
|
-
const logEnd = this.util.log.taskStart(`Resolving ${this.util.highlight(`${pkg.name}@${resolvedVersion}`)}`);
|
|
231
|
-
let changed;
|
|
232
|
-
try {
|
|
233
|
-
changed = await endpoint.resolve(pkg.name, resolvedVersion, lookup);
|
|
234
|
-
}
|
|
235
|
-
finally {
|
|
236
|
-
logEnd();
|
|
237
|
-
}
|
|
238
|
-
if (changed) {
|
|
239
|
-
version = lookup.versions[resolvedVersion];
|
|
240
|
-
if (!version)
|
|
241
|
-
return;
|
|
242
|
-
resolved = version.resolved;
|
|
243
|
-
// cache update individual resolve
|
|
244
|
-
(async () => {
|
|
245
|
-
const unlock = await cache.lock(pkg.name, this.timeouts.resolve);
|
|
246
|
-
await cache.set(pkg.name, lookup);
|
|
247
|
-
return unlock();
|
|
248
|
-
})().catch(() => { });
|
|
249
|
-
}
|
|
250
|
-
else if (!version) {
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
resolved = version.resolved;
|
|
255
|
-
}
|
|
256
|
-
if (!resolved)
|
|
257
|
-
throw new Error(`jspm registry endpoint for ${common_1.bold(registry)} did not properly resolve ${common_1.highlight(pkg.name)}.`);
|
|
258
|
-
}
|
|
259
|
-
break;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
catch (e) {
|
|
264
|
-
if (redirects)
|
|
265
|
-
e.redirects = redirects;
|
|
266
|
-
throw e;
|
|
267
|
-
}
|
|
268
|
-
let resolvedOverride;
|
|
269
|
-
if (resolved.override) {
|
|
270
|
-
resolvedOverride = package_1.processPackageConfig(resolved.override, true, override && override.registry);
|
|
271
|
-
if (override)
|
|
272
|
-
({ config: override } = package_1.overridePackageConfig(resolvedOverride, override));
|
|
273
|
-
else
|
|
274
|
-
override = resolvedOverride;
|
|
275
|
-
}
|
|
276
|
-
return {
|
|
277
|
-
pkg: {
|
|
278
|
-
registry,
|
|
279
|
-
name: pkg.name,
|
|
280
|
-
version: resolved.version || resolvedVersion,
|
|
281
|
-
semver: new sver_1.Semver(resolvedVersion)
|
|
282
|
-
},
|
|
283
|
-
target: redirects ? {
|
|
284
|
-
registry,
|
|
285
|
-
name: pkg.name,
|
|
286
|
-
version: pkg.version
|
|
287
|
-
} : pkg,
|
|
288
|
-
source: resolved.source,
|
|
289
|
-
override,
|
|
290
|
-
deprecated: resolved.deprecated
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
async resolveSource(source, packagePath, projectPath) {
|
|
294
|
-
if (source.startsWith('link:') || source.startsWith('file:') || source.startsWith('git+file:')) {
|
|
295
|
-
let sourceProtocol = source.substr(0, source[0] === 'g' ? 9 : 5);
|
|
296
|
-
let sourcePath = path.resolve(source.substr(source[0] === 'g' ? 9 : 5));
|
|
297
|
-
// relative file path installs that are not for the top-level project are relative to their package real path
|
|
298
|
-
if (packagePath !== process.cwd()) {
|
|
299
|
-
if ((common_1.isWindows && (source[0] === '/' || source[0] === '\\')) ||
|
|
300
|
-
sourcePath[0] === '.' && (sourcePath[1] === '/' || sourcePath[1] === '\\' || (sourcePath[1] === '.' && (sourcePath[2] === '/' || sourcePath[2] === '\\')))) {
|
|
301
|
-
const realPackagePath = await new Promise((resolve, reject) => fs.realpath(packagePath, (err, realpath) => err ? reject(err) : resolve(realpath)));
|
|
302
|
-
sourcePath = path.resolve(realPackagePath, sourcePath);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
// if a file: install and it is a directory then it is a link: install
|
|
306
|
-
if (source.startsWith('file:')) {
|
|
307
|
-
try {
|
|
308
|
-
const stats = fs.statSync(sourcePath);
|
|
309
|
-
if (stats.isDirectory())
|
|
310
|
-
sourceProtocol = 'link:';
|
|
311
|
-
}
|
|
312
|
-
catch (e) {
|
|
313
|
-
if (e && e.code === 'ENOENT')
|
|
314
|
-
throw new common_1.JspmUserError(`Path ${sourcePath} is not a valid file or directory.`);
|
|
315
|
-
throw e;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
sourcePath = path.relative(projectPath, sourcePath) + '/';
|
|
319
|
-
if (common_1.isWindows)
|
|
320
|
-
sourcePath = sourcePath.replace(common_1.winSepRegEx, '/');
|
|
321
|
-
source = sourceProtocol + sourcePath;
|
|
322
|
-
}
|
|
323
|
-
if (this.offline)
|
|
324
|
-
return source;
|
|
325
|
-
return source_1.resolveSource(this.util.log, this.fetch, source, this.timeouts.resolve);
|
|
326
|
-
}
|
|
327
|
-
async verifyInstallDir(dir, verifyHash, fullVerification) {
|
|
328
|
-
const cachedState = this.verifiedCache[verifyHash];
|
|
329
|
-
if (cachedState !== undefined && (cachedState !== VerifyState.HASH_VALID || !fullVerification))
|
|
330
|
-
return cachedState;
|
|
331
|
-
const installFile = path.resolve(dir, '.jspm');
|
|
332
|
-
const jspmJson = await common_1.readJSON(installFile);
|
|
333
|
-
if (!jspmJson)
|
|
334
|
-
return this.verifiedCache[verifyHash] = VerifyState.NOT_INSTALLED;
|
|
335
|
-
if (typeof jspmJson.mtime !== 'number' || jspmJson.hash !== verifyHash)
|
|
336
|
-
return this.verifiedCache[verifyHash] = VerifyState.INVALID;
|
|
337
|
-
// if not doing full verification for perf, stop here
|
|
338
|
-
if (!fullVerification)
|
|
339
|
-
return this.verifiedCache[verifyHash] = VerifyState.HASH_VALID;
|
|
340
|
-
// mtime check (skipping .jspm file)
|
|
341
|
-
let failure = false;
|
|
342
|
-
await dirWalk(dir, async (filePath, stats) => {
|
|
343
|
-
if (filePath === installFile)
|
|
344
|
-
return;
|
|
345
|
-
if (stats.mtimeMs > jspmJson.mtime) {
|
|
346
|
-
failure = true;
|
|
347
|
-
return true;
|
|
348
|
-
}
|
|
349
|
-
});
|
|
350
|
-
return this.verifiedCache[verifyHash] = failure ? VerifyState.INVALID : VerifyState.VERIFIED_VALID;
|
|
351
|
-
/*
|
|
352
|
-
let fileHashes = await Promise.all(fileList.map(getFileHash));
|
|
353
|
-
let installedDirHash = sha256(fileHashes.sort().join(''));
|
|
354
|
-
|
|
355
|
-
// hash match -> update the mtime in the install file so we dont check next time
|
|
356
|
-
if (installedDirHash === dirHash) {
|
|
357
|
-
await new Promise((resolve, reject) => {
|
|
358
|
-
fs.writeFile(installFile, mtime + '\n' + hash + '\n' + dirHash, err => err ? reject(err) : resolve())
|
|
359
|
-
});
|
|
360
|
-
return true;
|
|
361
|
-
}*/
|
|
362
|
-
}
|
|
363
|
-
// on verification failure, we remove the directory and redownload
|
|
364
|
-
// moving to a tmp location can be done during the verificationFailure call, to diff and determine route forward
|
|
365
|
-
// if deciding to checkout, "ensureInstall" operation is cancelled by returning true
|
|
366
|
-
// build support will be added to build into a newly prefixed folder, with build as a boolean argument
|
|
367
|
-
async ensureInstall(source, override, verificationFailure, fullVerification = false) {
|
|
368
|
-
let sourceHash = common_1.sha256(source);
|
|
369
|
-
var { config = undefined, hash = undefined } = await this.cache.getUnlocked(sourceHash, this.timeouts.download) || {};
|
|
370
|
-
if (config) {
|
|
371
|
-
config = package_1.processPackageConfig(config);
|
|
372
|
-
if (override) {
|
|
373
|
-
({ config, override } = package_1.overridePackageConfig(config, override));
|
|
374
|
-
hash = sourceHash + (override ? common_1.md5(JSON.stringify(override)) : '');
|
|
375
|
-
}
|
|
376
|
-
cjs_convert_1.convertCJSConfig(config);
|
|
377
|
-
var dir = path.join(this.cacheDir, 'packages', hash);
|
|
378
|
-
const verifyState = await this.verifyInstallDir(dir, hash, fullVerification);
|
|
379
|
-
if (verifyState > VerifyState.INVALID)
|
|
380
|
-
return { config, override, dir, hash, changed: false };
|
|
381
|
-
else if (verifyState !== VerifyState.NOT_INSTALLED && await verificationFailure(dir))
|
|
382
|
-
return;
|
|
383
|
-
}
|
|
384
|
-
if (this.offline)
|
|
385
|
-
throw new common_1.JspmUserError(`Package is not available for offline install.`);
|
|
386
|
-
let unlock = await this.cache.lock(sourceHash, this.timeouts.download);
|
|
387
|
-
try {
|
|
388
|
-
// could have been a write while we were getting the lock
|
|
389
|
-
if (!config) {
|
|
390
|
-
var { config = undefined, hash = undefined } = await this.cache.get(sourceHash) || {};
|
|
391
|
-
if (config) {
|
|
392
|
-
config = package_1.processPackageConfig(config);
|
|
393
|
-
if (override) {
|
|
394
|
-
({ config, override } = package_1.overridePackageConfig(config, override));
|
|
395
|
-
hash = sourceHash + (override ? common_1.md5(JSON.stringify(override)) : '');
|
|
396
|
-
}
|
|
397
|
-
cjs_convert_1.convertCJSConfig(config);
|
|
398
|
-
var dir = path.join(this.cacheDir, 'packages', hash);
|
|
399
|
-
const verifyState = await this.verifyInstallDir(dir, hash, fullVerification);
|
|
400
|
-
if (verifyState > VerifyState.INVALID)
|
|
401
|
-
return { config, override, dir, hash, changed: false };
|
|
402
|
-
else if (verifyState !== VerifyState.NOT_INSTALLED && await verificationFailure(dir))
|
|
403
|
-
return;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
// if we dont know the config then we dont know the canonical override (and hence hash)
|
|
407
|
-
// so we download to a temporary folder first
|
|
408
|
-
if (!config)
|
|
409
|
-
dir = path.join(this.cacheDir, 'tmp', common_1.sha256(Math.random().toString()));
|
|
410
|
-
await new Promise((resolve, reject) => rimraf(dir, err => err ? reject(err) : resolve()));
|
|
411
|
-
await new Promise((resolve, reject) => mkdirp(dir, err => err ? reject(err) : resolve()));
|
|
412
|
-
if (this.offline)
|
|
413
|
-
throw new common_1.JspmUserError(`Source ${source} is not available offline.`);
|
|
414
|
-
// if source is linked, can return the linked dir directly
|
|
415
|
-
await source_1.downloadSource(this.util.log, this.fetch, source, dir, this.timeouts.download);
|
|
416
|
-
const logEnd = this.util.log.taskStart('Finalizing ' + common_1.highlight(source));
|
|
417
|
-
try {
|
|
418
|
-
let pjsonPath = path.resolve(dir, 'package.json');
|
|
419
|
-
let { json: pjson, style } = await config_file_1.readJSONStyled(pjsonPath);
|
|
420
|
-
if (!pjson)
|
|
421
|
-
pjson = {};
|
|
422
|
-
if (!config) {
|
|
423
|
-
let pjsonConfig = package_1.processPackageConfig(pjson);
|
|
424
|
-
const serializedConfig = package_1.serializePackageConfig(pjsonConfig, this.defaultRegistry);
|
|
425
|
-
if (override)
|
|
426
|
-
({ config, override } = package_1.overridePackageConfig(pjsonConfig, override));
|
|
427
|
-
else
|
|
428
|
-
config = pjsonConfig;
|
|
429
|
-
cjs_convert_1.convertCJSConfig(config);
|
|
430
|
-
hash = sourceHash + (override ? common_1.md5(JSON.stringify(override)) : '');
|
|
431
|
-
await Promise.all([
|
|
432
|
-
this.cache.set(sourceHash, { config: serializedConfig, hash }),
|
|
433
|
-
// move the tmp folder to the known hash now
|
|
434
|
-
(async () => {
|
|
435
|
-
const toDir = path.join(this.cacheDir, 'packages', hash);
|
|
436
|
-
await new Promise((resolve, reject) => rimraf(toDir, err => err ? reject(err) : resolve()));
|
|
437
|
-
await new Promise((resolve, reject) => {
|
|
438
|
-
fs.rename(dir, dir = toDir, err => err ? reject(err) : resolve());
|
|
439
|
-
});
|
|
440
|
-
})()
|
|
441
|
-
]);
|
|
442
|
-
pjsonPath = path.resolve(dir, 'package.json');
|
|
443
|
-
}
|
|
444
|
-
await config_file_1.writeJSONStyled(pjsonPath, Object.assign(pjson, package_1.serializePackageConfig(config)), style || config_file_1.defaultStyle);
|
|
445
|
-
await binary_build_1.runBinaryBuild(this.util.log, dir, pjson.name, pjson.scripts);
|
|
446
|
-
// run package conversion
|
|
447
|
-
// (on any subfolder containing a "type": "commonjs")
|
|
448
|
-
await cjs_convert_1.convertCJSPackage(this.util.log, dir, config.name, config, this.defaultRegistry);
|
|
449
|
-
var mtime = await new Promise((resolve, reject) => fs.stat(pjsonPath, (err, stats) => err ? reject(err) : resolve(stats.mtimeMs)));
|
|
450
|
-
// todo: diffs for invalid?
|
|
451
|
-
// const fileHashes = await calculateFileHashes(dir);
|
|
452
|
-
// will be useful for avoiding mistaken mtime bumps when viewing
|
|
453
|
-
await new Promise((resolve, reject) => {
|
|
454
|
-
fs.writeFile(path.join(dir, '.jspm'), JSON.stringify({ mtime, hash }), err => err ? reject(err) : resolve());
|
|
455
|
-
});
|
|
456
|
-
this.verifiedCache[hash] = VerifyState.VERIFIED_VALID;
|
|
457
|
-
return { config, override, dir, hash, changed: true };
|
|
458
|
-
}
|
|
459
|
-
finally {
|
|
460
|
-
logEnd();
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
finally {
|
|
464
|
-
unlock();
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
async publish(packagePath, registry, pjson, tarStream, opts) {
|
|
468
|
-
const { endpoint } = this.getEndpoint(registry);
|
|
469
|
-
if (!endpoint.publish)
|
|
470
|
-
throw new common_1.JspmUserError(`Registry ${common_1.highlight(pjson.registry)} does not support publishing.`);
|
|
471
|
-
const logEnd = this.util.log.taskStart(`Publishing ${this.util.highlight(`${registry}:${pjson.name}@${pjson.version}`)}`);
|
|
472
|
-
try {
|
|
473
|
-
await endpoint.publish(packagePath, pjson, tarStream, opts);
|
|
474
|
-
}
|
|
475
|
-
finally {
|
|
476
|
-
logEnd();
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
exports.default = RegistryManager;
|
|
481
|
-
function dirWalk(dir, visit) {
|
|
482
|
-
return new Promise((resolve, reject) => {
|
|
483
|
-
let errored = false;
|
|
484
|
-
let cnt = 0;
|
|
485
|
-
visitFileOrDir(path.resolve(dir));
|
|
486
|
-
function handleError(err) {
|
|
487
|
-
if (!errored) {
|
|
488
|
-
errored = true;
|
|
489
|
-
reject(err);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
function visitFileOrDir(fileOrDir) {
|
|
493
|
-
cnt++;
|
|
494
|
-
fs.stat(fileOrDir, async (err, stats) => {
|
|
495
|
-
if (err || errored)
|
|
496
|
-
return handleError(err);
|
|
497
|
-
try {
|
|
498
|
-
if (await visit(fileOrDir, stats))
|
|
499
|
-
return resolve();
|
|
500
|
-
}
|
|
501
|
-
catch (err) {
|
|
502
|
-
return handleError(err);
|
|
503
|
-
}
|
|
504
|
-
if (stats.isDirectory()) {
|
|
505
|
-
fs.readdir(fileOrDir, (err, paths) => {
|
|
506
|
-
if (err || errored)
|
|
507
|
-
return handleError(err);
|
|
508
|
-
cnt--;
|
|
509
|
-
if (paths.length === 0 && !errored && cnt === 0)
|
|
510
|
-
return resolve();
|
|
511
|
-
paths.forEach(fileOrDirPath => visitFileOrDir(path.resolve(fileOrDir, fileOrDirPath)));
|
|
512
|
-
});
|
|
513
|
-
}
|
|
514
|
-
else if (!errored && --cnt === 0) {
|
|
515
|
-
resolve();
|
|
516
|
-
}
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
|
-
});
|
|
520
|
-
}
|
|
521
|
-
//# sourceMappingURL=registry-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry-manager.js","sourceRoot":"","sources":["../../src/install/registry-manager.ts"],"names":[],"mappings":"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"}
|
package/lib/install/source.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Logger } from '../project';
|
|
2
|
-
import FetchClass from './fetch';
|
|
3
|
-
export declare const sourceProtocols: {
|
|
4
|
-
[protocol: string]: {
|
|
5
|
-
resolve?: (log: Logger, fetch: FetchClass, source: string, timeout: number) => Promise<string>;
|
|
6
|
-
download?: (log: Logger, fetch: FetchClass, source: string, outDir: string, timeout: number) => Promise<void>;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
export declare function resolveSource(log: Logger, fetch: FetchClass, source: string, timeout: number): Promise<string>;
|
|
10
|
-
export declare function downloadSource(log: Logger, fetch: FetchClass, source: string, outDir: string, timeout: number): Promise<void>;
|