jspm 2.0.0-beta.6 → 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 +1 -1
- package/README.md +20 -26
- package/dist/cli.js +1391 -0
- package/jspm.js +10 -0
- package/package.json +23 -50
- package/CHANGELOG.md +0 -21
- 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 -86
- 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 -13
- package/lib/map/common.js +0 -180
- 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 -356
- package/lib/map/index.js.map +0 -1
- package/lib/map/utils.d.ts +0 -10
- package/lib/map/utils.js +0 -181
- 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
package/lib/project.d.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { JspmUserError } from './utils/common';
|
|
2
|
-
import { confirm, input } from './utils/ui';
|
|
3
|
-
import Config from './config';
|
|
4
|
-
import RegistryManager, { Registry } from './install/registry-manager';
|
|
5
|
-
import globalConfig from './config/global-config-file';
|
|
6
|
-
import FetchClass from './install/fetch';
|
|
7
|
-
import { Install, InstallOptions, Installer } from './install';
|
|
8
|
-
export declare type Hook = 'preinstall' | 'postinstall';
|
|
9
|
-
export interface Logger {
|
|
10
|
-
newline: () => void;
|
|
11
|
-
msg: (msg: string) => void;
|
|
12
|
-
errMsg: (err: string | Error | JspmUserError) => void;
|
|
13
|
-
err: (err: string | Error | JspmUserError) => void;
|
|
14
|
-
debug: (msg: string) => void;
|
|
15
|
-
info: (msg: string) => void;
|
|
16
|
-
warn: (msg: string) => void;
|
|
17
|
-
ok: (msg: string) => void;
|
|
18
|
-
taskStart: (name: string) => () => void;
|
|
19
|
-
taskEnd: (name: string) => void;
|
|
20
|
-
}
|
|
21
|
-
export declare type input = typeof input;
|
|
22
|
-
export declare type confirm = typeof confirm;
|
|
23
|
-
export interface ProjectConfiguration {
|
|
24
|
-
userInput?: boolean;
|
|
25
|
-
cacheDir?: string;
|
|
26
|
-
timeouts?: {
|
|
27
|
-
resolve?: number;
|
|
28
|
-
download?: number;
|
|
29
|
-
};
|
|
30
|
-
defaultRegistry?: string;
|
|
31
|
-
offline?: boolean;
|
|
32
|
-
preferOffline?: boolean;
|
|
33
|
-
strictSSL?: boolean;
|
|
34
|
-
registries?: {
|
|
35
|
-
[name: string]: Registry;
|
|
36
|
-
};
|
|
37
|
-
cli?: boolean;
|
|
38
|
-
}
|
|
39
|
-
export declare class Project {
|
|
40
|
-
projectPath: string;
|
|
41
|
-
config: Config;
|
|
42
|
-
globalConfig: typeof globalConfig;
|
|
43
|
-
cli: boolean;
|
|
44
|
-
defaultRegistry: string;
|
|
45
|
-
log: Logger;
|
|
46
|
-
confirm: typeof confirm;
|
|
47
|
-
input: typeof input;
|
|
48
|
-
userInput: boolean;
|
|
49
|
-
offline: boolean;
|
|
50
|
-
preferOffline: boolean;
|
|
51
|
-
registryManager: RegistryManager;
|
|
52
|
-
installer: Installer;
|
|
53
|
-
fetch: FetchClass;
|
|
54
|
-
cacheDir: string;
|
|
55
|
-
checkedGlobalBin: boolean;
|
|
56
|
-
constructor(projectPath: string, options: ProjectConfiguration);
|
|
57
|
-
checkGlobalBin(): void;
|
|
58
|
-
dispose(): Promise<[void, void[], void]>;
|
|
59
|
-
save(): Promise<boolean>;
|
|
60
|
-
update(selectors: string[], opts: InstallOptions): Promise<void>;
|
|
61
|
-
install(installs: Install[], opts?: InstallOptions): Promise<void>;
|
|
62
|
-
uninstall(names: string[]): Promise<void>;
|
|
63
|
-
checkout(names: string[]): Promise<void>;
|
|
64
|
-
link(pkg: string, source: string, opts: InstallOptions): Promise<void>;
|
|
65
|
-
clean(): Promise<void>;
|
|
66
|
-
init(basePath: string): Promise<void>;
|
|
67
|
-
registryConfig(name: string): Promise<void>;
|
|
68
|
-
clearCache(): Promise<void>;
|
|
69
|
-
run(name: string, args: string[]): Promise<number>;
|
|
70
|
-
}
|
|
71
|
-
export declare function runHook(project: Project, name: Hook): Promise<void>;
|
package/lib/project.js
DELETED
|
@@ -1,434 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/*
|
|
4
|
-
* Copyright 2014-2018 Guy Bedford (http://guybedford.com)
|
|
5
|
-
*
|
|
6
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
* you may not use this file except in compliance with the License.
|
|
8
|
-
* You may obtain a copy of the License at
|
|
9
|
-
*
|
|
10
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
*
|
|
12
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
* See the License for the specific language governing permissions and
|
|
16
|
-
* limitations under the License.
|
|
17
|
-
*/
|
|
18
|
-
const path = require("path");
|
|
19
|
-
const rimraf = require("rimraf");
|
|
20
|
-
const events = require("events");
|
|
21
|
-
const mkdirp = require("mkdirp");
|
|
22
|
-
const common_1 = require("./utils/common");
|
|
23
|
-
const ui_1 = require("./utils/ui");
|
|
24
|
-
const config_1 = require("./config");
|
|
25
|
-
const registry_manager_1 = require("./install/registry-manager");
|
|
26
|
-
const cache_1 = require("./utils/cache");
|
|
27
|
-
const global_config_file_1 = require("./config/global-config-file");
|
|
28
|
-
const fetch_1 = require("./install/fetch");
|
|
29
|
-
const cjs_convert_1 = require("./compile/cjs-convert");
|
|
30
|
-
// import { ExactPackage, PackageName, clearPackageCache } from './utils/package';
|
|
31
|
-
const install_1 = require("./install");
|
|
32
|
-
const run_cmd_1 = require("./utils/run-cmd");
|
|
33
|
-
const api_1 = require("./api");
|
|
34
|
-
// git is required for jspm to work
|
|
35
|
-
let hasGit = true;
|
|
36
|
-
try {
|
|
37
|
-
require('which').sync('git');
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
hasGit = false;
|
|
41
|
-
}
|
|
42
|
-
function applyDefaultConfiguration(userConfig) {
|
|
43
|
-
const config = Object.assign({}, userConfig);
|
|
44
|
-
if (!config.registries) {
|
|
45
|
-
const registriesGlobalConfig = global_config_file_1.default.get('registries') || {};
|
|
46
|
-
const registries = {};
|
|
47
|
-
Object.keys(registriesGlobalConfig).forEach((registryName) => {
|
|
48
|
-
const registry = registriesGlobalConfig[registryName];
|
|
49
|
-
if (registry.handler === 'jspm-npm' || registry.handler === 'jspm-github')
|
|
50
|
-
registry.handler = undefined;
|
|
51
|
-
registries[registryName] = {
|
|
52
|
-
handler: registry.handler || `@jspm/${registryName}`,
|
|
53
|
-
config: registry
|
|
54
|
-
};
|
|
55
|
-
});
|
|
56
|
-
config.registries = registries;
|
|
57
|
-
}
|
|
58
|
-
if (!config.defaultRegistry) {
|
|
59
|
-
let defaultRegistry = global_config_file_1.default.get('defaultRegistry');
|
|
60
|
-
if (!defaultRegistry || defaultRegistry === 'jspm')
|
|
61
|
-
defaultRegistry = 'npm';
|
|
62
|
-
config.defaultRegistry = defaultRegistry;
|
|
63
|
-
}
|
|
64
|
-
if ('offline' in config === false)
|
|
65
|
-
config.offline = false;
|
|
66
|
-
if ('preferOffline' in config === false)
|
|
67
|
-
config.preferOffline = global_config_file_1.default.get('preferOffline') || false;
|
|
68
|
-
if ('cli' in config === false)
|
|
69
|
-
config.cli = true;
|
|
70
|
-
if ('timeouts' in config === false)
|
|
71
|
-
config.timeouts = {
|
|
72
|
-
resolve: global_config_file_1.default.get('timeouts.resolve') || 30000,
|
|
73
|
-
download: global_config_file_1.default.get('timeouts.download') || 300000
|
|
74
|
-
};
|
|
75
|
-
if ('userInput' in config === false)
|
|
76
|
-
config.userInput = true;
|
|
77
|
-
if ('cacheDir' in config === false)
|
|
78
|
-
config.cacheDir = common_1.JSPM_CACHE_DIR;
|
|
79
|
-
if ('strictSSL' in config === false)
|
|
80
|
-
config.strictSSL = global_config_file_1.default.get('strictSSL');
|
|
81
|
-
return config;
|
|
82
|
-
}
|
|
83
|
-
class Project {
|
|
84
|
-
constructor(projectPath, options) {
|
|
85
|
-
this.projectPath = projectPath;
|
|
86
|
-
if (!hasGit)
|
|
87
|
-
throw new common_1.JspmUserError(`${common_1.bold('git')} is not installed in path. You can install git from http://git-scm.com/downloads.`);
|
|
88
|
-
const config = applyDefaultConfiguration(options);
|
|
89
|
-
// is this running as a CLI or API?
|
|
90
|
-
this.cli = config.cli;
|
|
91
|
-
this.log = this.cli ? new CLILogger() : new APILogger();
|
|
92
|
-
if (projectPath === api_1.JSPM_GLOBAL_PATH)
|
|
93
|
-
this.checkGlobalBin();
|
|
94
|
-
// if (process.env.globalJspm === 'true')
|
|
95
|
-
// this.log.warn(`Running jspm globally, it is advisable to locally install jspm via ${bold(`npm install jspm --save-dev`)}.`);
|
|
96
|
-
this.defaultRegistry = config.defaultRegistry;
|
|
97
|
-
// hardcoded for now (pending jspm 3...)
|
|
98
|
-
this.defaultRegistry = 'npm';
|
|
99
|
-
mkdirp.sync(projectPath);
|
|
100
|
-
this.config = new config_1.default(projectPath, this);
|
|
101
|
-
this.globalConfig = global_config_file_1.default;
|
|
102
|
-
this.confirm = this.cli ? ui_1.confirm : (_msg, def) => Promise.resolve(typeof def === 'boolean' ? def : undefined);
|
|
103
|
-
this.input = this.cli ? ui_1.input : (_msg, def) => Promise.resolve(typeof def === 'string' ? def : undefined);
|
|
104
|
-
this.userInput = config.userInput;
|
|
105
|
-
this.offline = config.offline;
|
|
106
|
-
this.preferOffline = config.preferOffline;
|
|
107
|
-
this.cacheDir = config.cacheDir;
|
|
108
|
-
this.fetch = new fetch_1.default(this);
|
|
109
|
-
this.registryManager = new registry_manager_1.default({
|
|
110
|
-
cacheDir: this.cacheDir,
|
|
111
|
-
defaultRegistry: this.defaultRegistry,
|
|
112
|
-
Cache: cache_1.default,
|
|
113
|
-
timeouts: {
|
|
114
|
-
resolve: config.timeouts.resolve,
|
|
115
|
-
download: config.timeouts.download
|
|
116
|
-
},
|
|
117
|
-
offline: this.offline,
|
|
118
|
-
preferOffline: this.preferOffline,
|
|
119
|
-
userInput: this.userInput,
|
|
120
|
-
strictSSL: config.strictSSL,
|
|
121
|
-
log: this.log,
|
|
122
|
-
confirm: this.confirm,
|
|
123
|
-
input: this.input,
|
|
124
|
-
fetch: this.fetch,
|
|
125
|
-
registries: config.registries
|
|
126
|
-
});
|
|
127
|
-
// load registries upfront
|
|
128
|
-
// (strictly we should save registry configuration when a new registry appears)
|
|
129
|
-
this.registryManager.loadEndpoints();
|
|
130
|
-
cjs_convert_1.init();
|
|
131
|
-
this.installer = new install_1.Installer(this);
|
|
132
|
-
}
|
|
133
|
-
checkGlobalBin() {
|
|
134
|
-
if (this.checkedGlobalBin)
|
|
135
|
-
return;
|
|
136
|
-
const globalBin = path.join(api_1.JSPM_GLOBAL_PATH, 'jspm_packages', '.bin');
|
|
137
|
-
if (process.env[common_1.PATH].indexOf(globalBin) === -1)
|
|
138
|
-
this.log.warn(`The global jspm bin folder ${common_1.highlight(globalBin)} is not currently in your PATH, add this for native jspm bin support.`);
|
|
139
|
-
this.checkedGlobalBin = true;
|
|
140
|
-
}
|
|
141
|
-
dispose() {
|
|
142
|
-
return Promise.all([
|
|
143
|
-
this.config.dispose(),
|
|
144
|
-
this.registryManager.dispose(),
|
|
145
|
-
cjs_convert_1.dispose()
|
|
146
|
-
]);
|
|
147
|
-
}
|
|
148
|
-
async save() {
|
|
149
|
-
return await this.config.save();
|
|
150
|
-
}
|
|
151
|
-
/*
|
|
152
|
-
* Main API methods
|
|
153
|
-
*/
|
|
154
|
-
async update(selectors, opts) {
|
|
155
|
-
const taskEnd = this.log.taskStart('Updating...');
|
|
156
|
-
try {
|
|
157
|
-
var changed = await this.installer.update(selectors, opts);
|
|
158
|
-
}
|
|
159
|
-
finally {
|
|
160
|
-
taskEnd();
|
|
161
|
-
}
|
|
162
|
-
// NB install state change logging!
|
|
163
|
-
if (changed)
|
|
164
|
-
this.log.ok('Update complete.');
|
|
165
|
-
else
|
|
166
|
-
this.log.ok('Already up to date.');
|
|
167
|
-
}
|
|
168
|
-
async install(installs, opts = {}) {
|
|
169
|
-
const taskEnd = this.log.taskStart('Installing...');
|
|
170
|
-
try {
|
|
171
|
-
await runHook(this, 'preinstall');
|
|
172
|
-
if (installs.length === 0) {
|
|
173
|
-
opts.lock = true;
|
|
174
|
-
if (opts.latest) {
|
|
175
|
-
opts.latest = false;
|
|
176
|
-
this.log.warn(`${common_1.bold('--latest')} flag does not apply to package lock install.`);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
var changed = await this.installer.install(installs, opts);
|
|
180
|
-
await runHook(this, 'postinstall');
|
|
181
|
-
}
|
|
182
|
-
finally {
|
|
183
|
-
taskEnd();
|
|
184
|
-
}
|
|
185
|
-
// NB install state change logging!
|
|
186
|
-
if (changed)
|
|
187
|
-
this.log.ok('Install complete.');
|
|
188
|
-
else
|
|
189
|
-
this.log.ok('Already installed.');
|
|
190
|
-
}
|
|
191
|
-
async uninstall(names) {
|
|
192
|
-
const taskEnd = this.log.taskStart('Uninstalling...');
|
|
193
|
-
try {
|
|
194
|
-
await this.installer.uninstall(names);
|
|
195
|
-
}
|
|
196
|
-
finally {
|
|
197
|
-
taskEnd();
|
|
198
|
-
}
|
|
199
|
-
this.log.ok('Uninstalled successfully.');
|
|
200
|
-
}
|
|
201
|
-
async checkout(names) {
|
|
202
|
-
const taskEnd = this.log.taskStart('Checking out...');
|
|
203
|
-
try {
|
|
204
|
-
await this.installer.checkout(names);
|
|
205
|
-
}
|
|
206
|
-
finally {
|
|
207
|
-
taskEnd();
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
async link(pkg, source, opts) {
|
|
211
|
-
const taskEnd = this.log.taskStart('Linking...');
|
|
212
|
-
try {
|
|
213
|
-
await runHook(this, 'preinstall');
|
|
214
|
-
var changed = await this.installer.link(pkg, source, opts);
|
|
215
|
-
await runHook(this, 'postinstall');
|
|
216
|
-
}
|
|
217
|
-
finally {
|
|
218
|
-
taskEnd();
|
|
219
|
-
}
|
|
220
|
-
if (changed)
|
|
221
|
-
this.log.ok('Linked Successfully.');
|
|
222
|
-
else
|
|
223
|
-
this.log.ok('Already linked.');
|
|
224
|
-
}
|
|
225
|
-
async clean() {
|
|
226
|
-
const taskEnd = this.log.taskStart('Cleaning...');
|
|
227
|
-
try {
|
|
228
|
-
await this.installer.clean(true);
|
|
229
|
-
}
|
|
230
|
-
finally {
|
|
231
|
-
taskEnd();
|
|
232
|
-
}
|
|
233
|
-
this.log.ok('Project cleaned successfully.');
|
|
234
|
-
}
|
|
235
|
-
/*
|
|
236
|
-
async resolve (name: string, parentName: string) {
|
|
237
|
-
let loader = getLoader(this);
|
|
238
|
-
if (parentName)
|
|
239
|
-
parentName = await loader.resolve(parentName);
|
|
240
|
-
|
|
241
|
-
let resolved = await loader.resolve(name, parentName);
|
|
242
|
-
return toCleanPath(resolved);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
resolveSync (name: string, parentName: string) {
|
|
246
|
-
let loader = getLoader(this);
|
|
247
|
-
if (parentName)
|
|
248
|
-
parentName = loader.resolveSync(parentName);
|
|
249
|
-
|
|
250
|
-
let resolved = loader.resolveSync(name, parentName);
|
|
251
|
-
return toCleanPath(resolved);
|
|
252
|
-
}
|
|
253
|
-
*/
|
|
254
|
-
async init(basePath) {
|
|
255
|
-
if (basePath)
|
|
256
|
-
process.env.jspmConfigPath = path.resolve(basePath, 'package.json');
|
|
257
|
-
let relBase = path.relative(process.cwd(), path.dirname(process.env.jspmConfigPath || ''));
|
|
258
|
-
if (relBase !== '')
|
|
259
|
-
this.log.msg(`Initializing package at ${common_1.highlight(relBase)}\nUse ${common_1.bold(`jspm init .`)} to intialize into the current folder.`);
|
|
260
|
-
/* await this.config.load(true);
|
|
261
|
-
await this.config.save();
|
|
262
|
-
|
|
263
|
-
this.log('');
|
|
264
|
-
this.ok(`package.json at %${path.relative(process.cwd(), config.pjsonPath)}\n` +
|
|
265
|
-
`Config at %${path.relative(process.cwd(), config.pjson.configFile)}%` +
|
|
266
|
-
(config.loader.devFile ? ', %' + path.relative(process.cwd(), config.pjson.configFileDev) + '%' : '') +
|
|
267
|
-
(config.loader.browserFile ? ', %' + path.relative(process.cwd(), config.pjson.configFileBrowser) + '%' : '') +
|
|
268
|
-
(config.loader.nodeFile ? ', %' + path.relative(process.cwd(), config.pjson.configFileNode) + '%' : ''));*/
|
|
269
|
-
}
|
|
270
|
-
async registryConfig(name) {
|
|
271
|
-
return this.registryManager.configure(name);
|
|
272
|
-
}
|
|
273
|
-
async clearCache() {
|
|
274
|
-
await new Promise((resolve, reject) => rimraf(this.cacheDir, err => err ? reject(err) : resolve()));
|
|
275
|
-
this.log.warn(`Global cache cleared. ${common_1.underline(`All jspm projects for this system user will now have broken symlinks due to the shared global package cache.`)}`);
|
|
276
|
-
this.log.info(`${common_1.bold(`jspm install <packageName> -f`)} is equivalent to running a cache clear for that specific install tree.`);
|
|
277
|
-
this.log.info(`Please post an issue if you suspect the cache isn't invalidating properly.`);
|
|
278
|
-
}
|
|
279
|
-
async run(name, args) {
|
|
280
|
-
const scripts = this.config.pjson.scripts;
|
|
281
|
-
const script = scripts[name];
|
|
282
|
-
if (!script)
|
|
283
|
-
throw new common_1.JspmUserError(`No package.json ${common_1.highlight('"scripts"')} entry for command ${common_1.bold(name)}`);
|
|
284
|
-
const doPrePost = !name.startsWith('pre') && !name.startsWith('post');
|
|
285
|
-
const cmds = [];
|
|
286
|
-
if (doPrePost) {
|
|
287
|
-
const pre = scripts[`pre${name}`];
|
|
288
|
-
if (pre)
|
|
289
|
-
cmds.push(pre);
|
|
290
|
-
cmds.push(script);
|
|
291
|
-
const post = scripts[`post${name}`];
|
|
292
|
-
if (post)
|
|
293
|
-
cmds.push(post);
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
cmds.push(script);
|
|
297
|
-
}
|
|
298
|
-
// before running commands dispose the configuration
|
|
299
|
-
this.config.dispose();
|
|
300
|
-
this.config = undefined;
|
|
301
|
-
let exitCode = 0;
|
|
302
|
-
await Promise.all(cmds.map(async (cmd) => {
|
|
303
|
-
if (args.length)
|
|
304
|
-
cmd += joinArgs(args);
|
|
305
|
-
cmd = cmd.replace('npm ', 'jspm ');
|
|
306
|
-
const cmdCode = await run_cmd_1.runCmd(cmd, this.projectPath);
|
|
307
|
-
if (cmdCode !== 0)
|
|
308
|
-
exitCode = cmdCode;
|
|
309
|
-
}));
|
|
310
|
-
return exitCode;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
exports.Project = Project;
|
|
314
|
-
const dblQuoteRegEx = /"/g;
|
|
315
|
-
function joinArgs(args) {
|
|
316
|
-
return args.reduce((str, arg) => `${str} "${arg.replace(dblQuoteRegEx, '\\"')}"`, '');
|
|
317
|
-
}
|
|
318
|
-
async function runHook(project, name) {
|
|
319
|
-
var hooks = project.config.pjson.hooks;
|
|
320
|
-
if (!hooks || !hooks[name])
|
|
321
|
-
return;
|
|
322
|
-
try {
|
|
323
|
-
let m = require(hooks[name]);
|
|
324
|
-
if (!m.default || typeof m.default !== 'function')
|
|
325
|
-
throw new Error(`Hook ${common_1.bold(name)} doesn't contain a default export hook function.`);
|
|
326
|
-
await m.default();
|
|
327
|
-
}
|
|
328
|
-
catch (e) {
|
|
329
|
-
project.log.err(`Error running ${common_1.bold(name)} hook.`);
|
|
330
|
-
project.log.err(e.stack || e);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
exports.runHook = runHook;
|
|
334
|
-
class APILogger extends events.EventEmitter {
|
|
335
|
-
newline() { }
|
|
336
|
-
msg(msg) {
|
|
337
|
-
this.emit('msg', msg);
|
|
338
|
-
}
|
|
339
|
-
errMsg(msg) {
|
|
340
|
-
this.emit('errMsg', msg);
|
|
341
|
-
}
|
|
342
|
-
err(msg) {
|
|
343
|
-
this.emit('err', msg);
|
|
344
|
-
}
|
|
345
|
-
debug(msg) {
|
|
346
|
-
this.emit('debug', msg);
|
|
347
|
-
}
|
|
348
|
-
info(msg) {
|
|
349
|
-
this.emit('info', msg);
|
|
350
|
-
}
|
|
351
|
-
warn(msg) {
|
|
352
|
-
this.emit('warn', msg);
|
|
353
|
-
}
|
|
354
|
-
ok(msg) {
|
|
355
|
-
this.emit('ok', msg);
|
|
356
|
-
}
|
|
357
|
-
taskStart(name) {
|
|
358
|
-
this.emit('taskStart', name);
|
|
359
|
-
return () => this.taskEnd(name);
|
|
360
|
-
}
|
|
361
|
-
taskEnd(name) {
|
|
362
|
-
this.emit('taskEnd', name);
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
;
|
|
366
|
-
class CLILogger {
|
|
367
|
-
constructor() {
|
|
368
|
-
this.tasks = [];
|
|
369
|
-
this.lastTask = undefined;
|
|
370
|
-
}
|
|
371
|
-
newline() {
|
|
372
|
-
ui_1.log('');
|
|
373
|
-
}
|
|
374
|
-
msg(msg) {
|
|
375
|
-
ui_1.log(msg);
|
|
376
|
-
}
|
|
377
|
-
errMsg(msg) {
|
|
378
|
-
if (msg instanceof Error) {
|
|
379
|
-
if (msg.hideStack)
|
|
380
|
-
msg = msg.message;
|
|
381
|
-
else
|
|
382
|
-
msg = msg.stack || msg && msg.toString();
|
|
383
|
-
}
|
|
384
|
-
ui_1.logErr(msg);
|
|
385
|
-
}
|
|
386
|
-
err(msg) {
|
|
387
|
-
if (msg instanceof Error) {
|
|
388
|
-
if (msg.hideStack)
|
|
389
|
-
msg = msg.message;
|
|
390
|
-
else
|
|
391
|
-
msg = msg.stack || msg && msg.toString();
|
|
392
|
-
}
|
|
393
|
-
ui_1.log(msg, ui_1.LogType.err);
|
|
394
|
-
}
|
|
395
|
-
debug(msg) {
|
|
396
|
-
ui_1.log(msg, ui_1.LogType.debug);
|
|
397
|
-
}
|
|
398
|
-
info(msg) {
|
|
399
|
-
ui_1.log(msg, ui_1.LogType.info);
|
|
400
|
-
}
|
|
401
|
-
warn(msg) {
|
|
402
|
-
ui_1.log(msg, ui_1.LogType.warn);
|
|
403
|
-
}
|
|
404
|
-
ok(msg) {
|
|
405
|
-
ui_1.log(msg, ui_1.LogType.ok);
|
|
406
|
-
}
|
|
407
|
-
taskStart(name) {
|
|
408
|
-
this.tasks.push(name);
|
|
409
|
-
ui_1.log(this.tasks[this.tasks.length - 1], ui_1.LogType.status);
|
|
410
|
-
if (this.tasks.length === 1)
|
|
411
|
-
ui_1.startSpinner();
|
|
412
|
-
// allow debug log state to expand status
|
|
413
|
-
if (ui_1.logLevel === ui_1.LogType.debug && this.lastTask)
|
|
414
|
-
ui_1.log(this.lastTask, ui_1.LogType.debug);
|
|
415
|
-
this.lastTask = name;
|
|
416
|
-
return this.taskEnd.bind(this, name);
|
|
417
|
-
}
|
|
418
|
-
taskEnd(name) {
|
|
419
|
-
const taskIndex = this.tasks.indexOf(name);
|
|
420
|
-
if (taskIndex === -1)
|
|
421
|
-
return;
|
|
422
|
-
this.tasks.splice(taskIndex, 1);
|
|
423
|
-
if (this.tasks.length)
|
|
424
|
-
ui_1.log(this.tasks[this.tasks.length - 1], ui_1.LogType.status);
|
|
425
|
-
else
|
|
426
|
-
ui_1.stopSpinner();
|
|
427
|
-
if (ui_1.logLevel === ui_1.LogType.debug && this.lastTask && this.lastTask !== this.tasks[this.tasks.length - 1]) {
|
|
428
|
-
ui_1.log(this.lastTask, ui_1.LogType.debug);
|
|
429
|
-
this.lastTask = undefined;
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
;
|
|
434
|
-
//# sourceMappingURL=project.js.map
|
package/lib/project.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/cache.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default class Cache {
|
|
2
|
-
private basePath;
|
|
3
|
-
constructor(basePath: any);
|
|
4
|
-
get(cachePath: string): Promise<any>;
|
|
5
|
-
set(cachePath: string, value: any): Promise<void>;
|
|
6
|
-
setUnlock(cachePath: string, value: any): Promise<void>;
|
|
7
|
-
del(cachePath: string): Promise<void>;
|
|
8
|
-
lock(cachePath: string, timeout?: number): Promise<() => Promise<void>>;
|
|
9
|
-
getUnlocked(cachePath: any, timeout?: number): Promise<any>;
|
|
10
|
-
getOrCreate<T>(path: string, timeout: number, createTask: () => Promise<T>): Promise<T>;
|
|
11
|
-
}
|
package/lib/utils/cache.js
DELETED
|
@@ -1,121 +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 path = require("path");
|
|
19
|
-
const fs = require("graceful-fs");
|
|
20
|
-
const lockfile = require("proper-lockfile");
|
|
21
|
-
const common_1 = require("./common");
|
|
22
|
-
const promiseRetry = require("promise-retry");
|
|
23
|
-
const mkdirp = require("mkdirp");
|
|
24
|
-
/*
|
|
25
|
-
* multi-process fs caching with lock file
|
|
26
|
-
* with in-memory single-process cache and lock queue
|
|
27
|
-
*/
|
|
28
|
-
class Cache {
|
|
29
|
-
constructor(basePath) {
|
|
30
|
-
this.basePath = path.resolve(basePath);
|
|
31
|
-
mkdirp.sync(this.basePath);
|
|
32
|
-
}
|
|
33
|
-
get(cachePath) {
|
|
34
|
-
const resolved = path.resolve(this.basePath, cachePath);
|
|
35
|
-
return common_1.readJSON(resolved).catch(_err => {
|
|
36
|
-
// gracefully handle corruptions
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
async set(cachePath, value) {
|
|
40
|
-
const resolved = path.resolve(this.basePath, cachePath);
|
|
41
|
-
if (path.relative(this.basePath, resolved).indexOf(path.sep) !== -1)
|
|
42
|
-
await new Promise((resolve, reject) => mkdirp(path.dirname(resolved), err => err ? reject(err) : resolve()));
|
|
43
|
-
await new Promise((resolve, reject) => fs.writeFile(resolved, JSON.stringify(value), err => err ? reject(err) : resolve()));
|
|
44
|
-
}
|
|
45
|
-
async setUnlock(cachePath, value) {
|
|
46
|
-
const resolved = path.resolve(this.basePath, cachePath);
|
|
47
|
-
if (path.relative(this.basePath, resolved).indexOf(path.sep) !== -1)
|
|
48
|
-
await new Promise((resolve, reject) => mkdirp(path.dirname(resolved), err => err ? reject(err) : resolve()));
|
|
49
|
-
await new Promise((resolve, reject) => fs.writeFile(resolved, JSON.stringify(value), err => err ? reject(err) : resolve()));
|
|
50
|
-
await new Promise((resolve, reject) => lockfile.unlock(resolved, {
|
|
51
|
-
realpath: false
|
|
52
|
-
}, err => err ? reject(err) : resolve()));
|
|
53
|
-
}
|
|
54
|
-
async del(cachePath) {
|
|
55
|
-
const resolved = path.resolve(this.basePath, cachePath);
|
|
56
|
-
await new Promise((resolve, reject) => fs.unlink(resolved, err => err ? reject(err) : resolve()));
|
|
57
|
-
}
|
|
58
|
-
async lock(cachePath, timeout = 3000) {
|
|
59
|
-
const resolved = path.resolve(this.basePath, cachePath);
|
|
60
|
-
await new Promise((resolve, reject) => mkdirp(path.dirname(resolved), err => err ? reject(err) : resolve()));
|
|
61
|
-
const unlock = await new Promise((resolve, reject) => lockfile.lock(resolved, {
|
|
62
|
-
// exponential backoff of 5 checks from 200ms up to 3s
|
|
63
|
-
// followed by a constant timeout check of 3 seconds
|
|
64
|
-
// to an absolute maximum of the given timeout
|
|
65
|
-
realpath: false,
|
|
66
|
-
retries: {
|
|
67
|
-
retries: 2 + Math.floor(timeout / 3000),
|
|
68
|
-
factor: 1.5707,
|
|
69
|
-
minTimeout: 200,
|
|
70
|
-
maxTimeout: 3000
|
|
71
|
-
}
|
|
72
|
-
}, (err, unlock) => err ? reject(err) : resolve(unlock)));
|
|
73
|
-
return () => {
|
|
74
|
-
return new Promise((resolve, reject) => unlock(err => err ? reject(err) : resolve()));
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
// get, but only if unlocked, waiting on unlock
|
|
78
|
-
// in fs terms between instances for specific unused scenarios this can be racy on a small margin,
|
|
79
|
-
// if a get applies after a promise, ensure any corresponding locked sets itself to be idempotently accessible
|
|
80
|
-
async getUnlocked(cachePath, timeout = 3000) {
|
|
81
|
-
const resolved = path.resolve(this.basePath, cachePath);
|
|
82
|
-
await promiseRetry(async (retry) => {
|
|
83
|
-
const locked = await new Promise((resolve, reject) => lockfile.check(resolved, { realpath: false }, (err, locked) => err ? reject(err) : resolve(locked)));
|
|
84
|
-
if (locked)
|
|
85
|
-
retry(new Error(`Operation timeout.`));
|
|
86
|
-
}, {
|
|
87
|
-
retries: 2 + Math.floor(timeout / 3000),
|
|
88
|
-
factor: 1.5707,
|
|
89
|
-
minTimeout: 200,
|
|
90
|
-
maxTimeout: 3000
|
|
91
|
-
});
|
|
92
|
-
return this.get(resolved);
|
|
93
|
-
}
|
|
94
|
-
// get, waiting on any lock, locking,
|
|
95
|
-
// creating and then unlocking if not existing
|
|
96
|
-
async getOrCreate(path, timeout = 3, createTask) {
|
|
97
|
-
let result = await this.getUnlocked(path, timeout);
|
|
98
|
-
if (result)
|
|
99
|
-
return result;
|
|
100
|
-
let unlock = await this.lock(path, timeout);
|
|
101
|
-
// could have been beaten to the lock
|
|
102
|
-
result = await this.getUnlocked(path, timeout);
|
|
103
|
-
if (result)
|
|
104
|
-
return result;
|
|
105
|
-
let timer;
|
|
106
|
-
let timeoutPromise = new Promise((_resolve, reject) => {
|
|
107
|
-
timer = setTimeout(() => reject(new common_1.JspmError('Operation timeout.')));
|
|
108
|
-
});
|
|
109
|
-
try {
|
|
110
|
-
let value = await Promise.race([timeoutPromise, createTask()]);
|
|
111
|
-
clearTimeout(timer);
|
|
112
|
-
this.set(path, value);
|
|
113
|
-
return value;
|
|
114
|
-
}
|
|
115
|
-
finally {
|
|
116
|
-
unlock();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
exports.default = Cache;
|
|
121
|
-
//# sourceMappingURL=cache.js.map
|
package/lib/utils/cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
|