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.
Files changed (100) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +20 -26
  3. package/dist/cli.js +1391 -0
  4. package/jspm.js +10 -0
  5. package/package.json +23 -50
  6. package/CHANGELOG.md +0 -21
  7. package/bin/jspm +0 -46
  8. package/lib/api.d.ts +0 -10
  9. package/lib/api.js +0 -71
  10. package/lib/api.js.map +0 -1
  11. package/lib/build/index.d.ts +0 -24
  12. package/lib/build/index.js +0 -163
  13. package/lib/build/index.js.map +0 -1
  14. package/lib/cli.d.ts +0 -1
  15. package/lib/cli.js +0 -701
  16. package/lib/cli.js.map +0 -1
  17. package/lib/compile/cjs-convert.d.ts +0 -7
  18. package/lib/compile/cjs-convert.js +0 -375
  19. package/lib/compile/cjs-convert.js.map +0 -1
  20. package/lib/compile/dew-resolve.d.ts +0 -9
  21. package/lib/compile/dew-resolve.js +0 -117
  22. package/lib/compile/dew-resolve.js.map +0 -1
  23. package/lib/compile/dew-worker.d.ts +0 -1
  24. package/lib/compile/dew-worker.js +0 -302
  25. package/lib/compile/dew-worker.js.map +0 -1
  26. package/lib/config/config-file.d.ts +0 -67
  27. package/lib/config/config-file.js +0 -591
  28. package/lib/config/config-file.js.map +0 -1
  29. package/lib/config/global-config-file.d.ts +0 -8
  30. package/lib/config/global-config-file.js +0 -89
  31. package/lib/config/global-config-file.js.map +0 -1
  32. package/lib/config/index.d.ts +0 -15
  33. package/lib/config/index.js +0 -59
  34. package/lib/config/index.js.map +0 -1
  35. package/lib/config/jspm-file.d.ts +0 -8
  36. package/lib/config/jspm-file.js +0 -84
  37. package/lib/config/jspm-file.js.map +0 -1
  38. package/lib/config/package-json-file.d.ts +0 -49
  39. package/lib/config/package-json-file.js +0 -332
  40. package/lib/config/package-json-file.js.map +0 -1
  41. package/lib/exec/index.d.ts +0 -12
  42. package/lib/exec/index.js +0 -117
  43. package/lib/exec/index.js.map +0 -1
  44. package/lib/install/bin.d.ts +0 -2
  45. package/lib/install/bin.js +0 -86
  46. package/lib/install/bin.js.map +0 -1
  47. package/lib/install/binary-build.d.ts +0 -2
  48. package/lib/install/binary-build.js +0 -89
  49. package/lib/install/binary-build.js.map +0 -1
  50. package/lib/install/fetch.d.ts +0 -53
  51. package/lib/install/fetch.js +0 -270
  52. package/lib/install/fetch.js.map +0 -1
  53. package/lib/install/index.d.ts +0 -66
  54. package/lib/install/index.js +0 -1164
  55. package/lib/install/index.js.map +0 -1
  56. package/lib/install/package.d.ts +0 -142
  57. package/lib/install/package.js +0 -625
  58. package/lib/install/package.js.map +0 -1
  59. package/lib/install/publish.d.ts +0 -14
  60. package/lib/install/publish.js +0 -186
  61. package/lib/install/publish.js.map +0 -1
  62. package/lib/install/registry-manager.d.ts +0 -134
  63. package/lib/install/registry-manager.js +0 -521
  64. package/lib/install/registry-manager.js.map +0 -1
  65. package/lib/install/source.d.ts +0 -10
  66. package/lib/install/source.js +0 -378
  67. package/lib/install/source.js.map +0 -1
  68. package/lib/map/common.d.ts +0 -13
  69. package/lib/map/common.js +0 -180
  70. package/lib/map/common.js.map +0 -1
  71. package/lib/map/esm-lexer.d.ts +0 -17
  72. package/lib/map/esm-lexer.js +0 -506
  73. package/lib/map/esm-lexer.js.map +0 -1
  74. package/lib/map/index.d.ts +0 -15
  75. package/lib/map/index.js +0 -356
  76. package/lib/map/index.js.map +0 -1
  77. package/lib/map/utils.d.ts +0 -10
  78. package/lib/map/utils.js +0 -181
  79. package/lib/map/utils.js.map +0 -1
  80. package/lib/overrides.d.ts +0 -3
  81. package/lib/overrides.js +0 -29
  82. package/lib/overrides.js.map +0 -1
  83. package/lib/project.d.ts +0 -71
  84. package/lib/project.js +0 -434
  85. package/lib/project.js.map +0 -1
  86. package/lib/utils/cache.d.ts +0 -11
  87. package/lib/utils/cache.js +0 -121
  88. package/lib/utils/cache.js.map +0 -1
  89. package/lib/utils/common.d.ts +0 -55
  90. package/lib/utils/common.js +0 -267
  91. package/lib/utils/common.js.map +0 -1
  92. package/lib/utils/opts.d.ts +0 -6
  93. package/lib/utils/opts.js +0 -200
  94. package/lib/utils/opts.js.map +0 -1
  95. package/lib/utils/run-cmd.d.ts +0 -4
  96. package/lib/utils/run-cmd.js +0 -39
  97. package/lib/utils/run-cmd.js.map +0 -1
  98. package/lib/utils/ui.d.ts +0 -38
  99. package/lib/utils/ui.js +0 -496
  100. package/lib/utils/ui.js.map +0 -1
package/lib/utils/ui.js DELETED
@@ -1,496 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /*
4
- * Copyright 2014-2019 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 chalk_1 = require("chalk");
19
- const readline = require("readline");
20
- const stream = require("stream");
21
- const ora = require("ora");
22
- const common_1 = require("./common");
23
- let logging = true;
24
- let logBuffer = '';
25
- let errBuffer = '';
26
- let logged = false;
27
- class MutableStdout extends stream.Writable {
28
- constructor() {
29
- super(...arguments);
30
- this.muted = false;
31
- }
32
- _write(chunk, encoding, callback) {
33
- if (!this.muted)
34
- process.stdout.write(chunk, encoding);
35
- callback();
36
- }
37
- }
38
- const mutableStdout = new MutableStdout();
39
- var LogType;
40
- (function (LogType) {
41
- LogType[LogType["none"] = 0] = "none";
42
- LogType[LogType["err"] = 1] = "err";
43
- LogType[LogType["warn"] = 2] = "warn";
44
- LogType[LogType["ok"] = 3] = "ok";
45
- LogType[LogType["info"] = 4] = "info";
46
- LogType[LogType["debug"] = 5] = "debug";
47
- LogType[LogType["status"] = 6] = "status";
48
- })(LogType = exports.LogType || (exports.LogType = {}));
49
- ;
50
- exports.logLevel = LogType.info;
51
- // if muting any logs, dump them on exit
52
- let inputRedact;
53
- process.on('exit', () => {
54
- if (spinning && hiddenCnt === 0)
55
- spinner.clear();
56
- if (inputRedact) {
57
- console.log('');
58
- inputRedact();
59
- }
60
- if (logBuffer)
61
- process.stdout.write(logBuffer);
62
- if (errBuffer)
63
- process.stderr.write(errBuffer);
64
- });
65
- // use the default option in all prompts
66
- // throws an error for prompts that don't take a default
67
- exports.useDefaults = false;
68
- function setUseDefaults(_useDefaults) {
69
- exports.useDefaults = _useDefaults;
70
- }
71
- exports.setUseDefaults = setUseDefaults;
72
- function setLogLevel(level) {
73
- exports.logLevel = level;
74
- }
75
- exports.setLogLevel = setLogLevel;
76
- ;
77
- const format = {
78
- q(msg, opt) {
79
- return moduleMsg(msg + (opt ? ' [' + opt + ']' : '') + ': ');
80
- },
81
- [LogType.err](msg) {
82
- return chalk_1.default.red.bold('err ') + '(jspm) ' + moduleMsg(msg, false, false);
83
- },
84
- [LogType.info](msg) {
85
- return ' ' + moduleMsg(msg, true);
86
- },
87
- [LogType.warn](msg) {
88
- return chalk_1.default.yellow.bold('warn ') + '(jspm) ' + moduleMsg(msg, true);
89
- },
90
- [LogType.ok](msg) {
91
- return chalk_1.default.green.bold('ok ') + moduleMsg(msg, true);
92
- },
93
- [LogType.debug](msg) {
94
- return moduleMsg(msg, true);
95
- }
96
- };
97
- const spinner = ora({
98
- text: '',
99
- color: 'yellow',
100
- spinner: {
101
- interval: 200,
102
- frames: [
103
- ". ",
104
- ".. ",
105
- "... ",
106
- " ...",
107
- " ..",
108
- " .",
109
- " "
110
- ]
111
- }
112
- });
113
- let spinning = false;
114
- function startSpinner() {
115
- spinning = true;
116
- if (hiddenCnt === 0)
117
- spinner.start();
118
- }
119
- exports.startSpinner = startSpinner;
120
- function stopSpinner() {
121
- if (spinning && hiddenCnt === 0) {
122
- spinner.clear();
123
- spinner.stop();
124
- frameIndex = 0;
125
- }
126
- spinning = false;
127
- }
128
- exports.stopSpinner = stopSpinner;
129
- let hiddenCnt = 0;
130
- let frameIndex = 0;
131
- function hideSpinner() {
132
- if (hiddenCnt++ === 0 && spinning && spinner.id) {
133
- frameIndex = spinner.frameIndex;
134
- spinner.clear();
135
- spinner.stop();
136
- }
137
- }
138
- function showSpinner() {
139
- if ((hiddenCnt === 0 || --hiddenCnt === 0) && spinning && !spinner.id) {
140
- spinner.frameIndex = frameIndex;
141
- spinner.start();
142
- }
143
- }
144
- function logErr(msg) {
145
- logged = true;
146
- hideSpinner();
147
- if (logging)
148
- console.error(msg);
149
- else
150
- logBuffer += msg + '\n';
151
- showSpinner();
152
- }
153
- exports.logErr = logErr;
154
- function ok(msg) {
155
- log(msg, LogType.ok);
156
- }
157
- exports.ok = ok;
158
- function err(msg) {
159
- log(msg, LogType.err);
160
- }
161
- exports.err = err;
162
- function warn(msg) {
163
- log(msg, LogType.warn);
164
- }
165
- exports.warn = warn;
166
- function debug(msg) {
167
- log(msg, LogType.debug);
168
- }
169
- exports.debug = debug;
170
- function info(msg) {
171
- log(msg, LogType.info);
172
- }
173
- exports.info = info;
174
- function log(msg, type = LogType.info) {
175
- if (type === LogType.status) {
176
- spinner.text = msg.substr(0, process.stdout.columns);
177
- return;
178
- }
179
- logged = true;
180
- if (type === undefined) {
181
- hideSpinner();
182
- if (logging)
183
- console.log(msg);
184
- else
185
- logBuffer += msg + '\n';
186
- showSpinner();
187
- return;
188
- }
189
- msg = format[type](msg);
190
- if (type <= exports.logLevel) {
191
- hideSpinner();
192
- if (logging) {
193
- if (type !== LogType.err)
194
- console.log(msg);
195
- else
196
- console.error(msg);
197
- }
198
- else {
199
- if (type !== LogType.err)
200
- logBuffer += msg + '\n';
201
- else
202
- errBuffer += msg + '\n';
203
- }
204
- showSpinner();
205
- }
206
- }
207
- exports.log = log;
208
- ;
209
- const ansiControlCodeRegEx = /(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]/g;
210
- function wordWrap(text, columns, leftIndent = 0, rightIndent = 0, skipFirstLineIndent = false) {
211
- let leftSpaces = '';
212
- let i;
213
- for (i = 0; i < leftIndent; i++)
214
- leftSpaces += ' ';
215
- // simple word wrapping
216
- columns = columns - leftIndent - rightIndent;
217
- let output = [];
218
- let lastBreak = 0;
219
- let lastSpace = 0;
220
- let skipLength = 0; // skip control characters
221
- // carefully ensure underlines skip tab space added
222
- let underline = false;
223
- let underlineNext = false;
224
- for (i = 0; i < text.length; i++) {
225
- if (text[i] === '\x1b') {
226
- ansiControlCodeRegEx.lastIndex = i - 1;
227
- let controlCodeMatch = ansiControlCodeRegEx.exec(text);
228
- if (!controlCodeMatch) {
229
- skipLength = 1;
230
- }
231
- else {
232
- skipLength = controlCodeMatch[0].length;
233
- if (controlCodeMatch[0] === '\u001b[4m')
234
- underline = true;
235
- else if (controlCodeMatch[0] === '\u001b[24m')
236
- underline = false;
237
- }
238
- continue;
239
- }
240
- if (text[i] === ' ')
241
- lastSpace = i;
242
- // existing newline adds buffer
243
- if (text[i] === '\n') {
244
- lastSpace = i;
245
- output.push((output.length === 0 && skipFirstLineIndent ? '' : leftSpaces) +
246
- (underlineNext ? '\x1b[4m' : '') +
247
- text.substring(lastBreak, i) +
248
- (underline ? ((underlineNext = true), '\x1b[24m') : ((underlineNext = false), '')) +
249
- '\n');
250
- lastSpace = i;
251
- lastBreak = i + 1;
252
- skipLength = 0;
253
- }
254
- // on expected breaking point
255
- else if ((i - skipLength) !== lastBreak &&
256
- (i - lastBreak - skipLength) % columns === 0 &&
257
- lastSpace > lastBreak) {
258
- output.push((output.length === 0 && skipFirstLineIndent ? '' : leftSpaces) +
259
- (underlineNext ? '\x1b[4m' : '') +
260
- text.substring(lastBreak, lastSpace) +
261
- (underline ? ((underlineNext = true), '\x1b[24m') : ((underlineNext = false), '')) +
262
- '\n');
263
- lastBreak = lastSpace + 1;
264
- skipLength = 0;
265
- }
266
- }
267
- output.push((output.length === 0 && skipFirstLineIndent ? '' : leftSpaces) +
268
- (underlineNext ? '\x1b[4m' : '') +
269
- text.substr(lastBreak));
270
- return output.join('');
271
- }
272
- function moduleMsg(msg, tab, wrap) {
273
- if (tab)
274
- msg = wordWrap(msg, process.stdout.columns + (common_1.isWindows ? -1 : 0), tab ? 5 : 0).substr(5);
275
- else if (wrap)
276
- msg = wordWrap(msg, process.stdout.columns + (common_1.isWindows ? -1 : 0));
277
- else
278
- msg.replace(/(\r?\n)/g, '$1 ');
279
- // formatting
280
- // msg.replace(/\t/g, ' ');
281
- return msg;
282
- }
283
- ;
284
- let inputQueue = [];
285
- async function confirm(msg, def, options = {}) {
286
- if (typeof def === 'object' && def !== null) {
287
- options = def;
288
- def = undefined;
289
- }
290
- let defText;
291
- if (def === true)
292
- defText = 'Yes';
293
- else if (def === false)
294
- defText = 'No';
295
- else
296
- def = undefined;
297
- if (exports.useDefaults) {
298
- if (def === undefined)
299
- defText = 'Yes';
300
- hideSpinner();
301
- process.stdout.write(format.q(msg) + defText + '\n');
302
- showSpinner();
303
- return Promise.resolve(!!def);
304
- }
305
- let reply = await input(msg + (defText ? '' : ' [Yes/No]'), defText, {
306
- edit: options.edit,
307
- info: options.info,
308
- silent: options.silent,
309
- options: ['Yes', 'No']
310
- });
311
- if (reply == 'Yes')
312
- return true;
313
- if (reply == 'No')
314
- return false;
315
- return confirm(msg, def, options);
316
- }
317
- exports.confirm = confirm;
318
- ;
319
- let inputFunc = _key => { };
320
- process.stdin.on('keypress', (_chunk, key) => {
321
- inputFunc(key);
322
- });
323
- function input(msg, def, options = {}, queue = false) {
324
- if (typeof def === 'object' && def !== null) {
325
- options = def;
326
- def = undefined;
327
- }
328
- const defValue = def;
329
- if (typeof options === 'boolean')
330
- options = {
331
- silent: true,
332
- edit: false,
333
- clearOnType: false,
334
- info: undefined,
335
- hideInfo: true,
336
- completer: undefined,
337
- validate: undefined,
338
- validationError: undefined,
339
- optionalOptions: false
340
- };
341
- options.completer = partialLine => {
342
- if (!partialLine.length || !options.options)
343
- return [[], partialLine];
344
- partialLine = partialLine.toLowerCase().trim();
345
- let hits = options.options.filter(c => c.toLowerCase().indexOf(partialLine) === 0);
346
- // we only return one option, to avoid printing out completions
347
- return [hits.length ? [hits[0]] : [], partialLine];
348
- };
349
- options = options || {};
350
- if (exports.useDefaults) {
351
- process.stdout.write(format.q(msg) + (options.silent ? '' : defValue) + '\n');
352
- return Promise.resolve(defValue);
353
- }
354
- hideSpinner();
355
- return new Promise((resolve, reject) => {
356
- if (!logging && !queue)
357
- return inputQueue.push({
358
- args: [msg, defValue, options, true],
359
- resolve: resolve,
360
- reject: reject
361
- });
362
- // if there is info text for this question, first write out the hint text below
363
- // then restore the cursor and write out the question
364
- let infoLines = 1;
365
- if (options.info || options.validationError) {
366
- let infoText = '\n';
367
- if (options.info)
368
- infoText += wordWrap(options.info, process.stdout.columns, 5, 5) + '\n';
369
- if (options.validationError)
370
- infoText += format[LogType.warn](wordWrap(options.validationError, process.stdout.columns, 0, 5)) + '\n';
371
- infoText += '\n';
372
- process.stdout.write(infoText);
373
- infoLines = infoText.split('\n').length;
374
- }
375
- if (!('hideInfo' in options))
376
- options.hideInfo = true;
377
- if (logging && logged)
378
- process.stdout.write('\n');
379
- logging = false;
380
- let rl = readline.createInterface({
381
- input: process.stdin,
382
- output: mutableStdout,
383
- terminal: true,
384
- completer: options.completer
385
- });
386
- let questionMessage = format.q(msg, defValue && !options.edit ? defValue : '');
387
- infoLines += questionMessage.split('\n').length - 1;
388
- if (options.options)
389
- var ctrlOpt = new CtrlOption(options.options, rl);
390
- if (!options.edit)
391
- inputFunc = key => {
392
- if (!key)
393
- return;
394
- let i;
395
- if (options.clearOnType && key.name !== 'return' && key.name !== 'backspace' && key.name !== 'left') {
396
- // this actually works, which was rather unexpected
397
- for (i = 0; i < (defValue || '').length; i++)
398
- process.stdin.emit('keypress', '\b', { name: 'backspace' });
399
- }
400
- // allow scrolling through default options
401
- if (ctrlOpt) {
402
- if (key.name === 'up')
403
- ctrlOpt.moveUp();
404
- if (key.name === 'down')
405
- ctrlOpt.moveDown();
406
- }
407
- // for no default options, allow backtracking to default
408
- else if (key.name === 'up' || key.name === 'down') {
409
- rl.write(null, { ctrl: true, name: 'u' });
410
- for (i = 0; i < defValue.length; i++)
411
- process.stdin.emit('keypress', defValue[i], { name: defValue[i] });
412
- }
413
- };
414
- rl.question(questionMessage, inputVal => {
415
- inputFunc = () => { };
416
- if (mutableStdout.muted)
417
- console.log('');
418
- rl.close();
419
- // run completions by default on enter when provided
420
- if (options.options && !options.optionalOptions)
421
- inputVal = options.completer(inputVal)[0][0] || '';
422
- inputVal = inputVal.trim();
423
- if (!options.edit)
424
- inputVal = inputVal || defValue;
425
- let retryErr;
426
- if (options.validate)
427
- retryErr = options.validate(inputVal);
428
- inputRedact(inputVal, !!retryErr, options.silent);
429
- inputRedact = null;
430
- mutableStdout.muted = false;
431
- if (retryErr)
432
- return input(msg, defValue, {
433
- info: options.info,
434
- silent: options.silent,
435
- edit: options.edit,
436
- clearOnType: options.clearOnType,
437
- completer: options.completer,
438
- validate: options.validate,
439
- validationError: retryErr.toString(),
440
- optionalOptions: options.optionalOptions,
441
- hideInfo: options.hideInfo
442
- }, true).then(resolve, reject);
443
- // bump the input queue
444
- let next = inputQueue.shift();
445
- if (next)
446
- input.apply(null, next.args).then(next.resolve, next.reject);
447
- else {
448
- process.stdout.write(logBuffer);
449
- process.stderr.write(errBuffer);
450
- logBuffer = '';
451
- errBuffer = '';
452
- logging = true;
453
- logged = false;
454
- }
455
- showSpinner();
456
- resolve(inputVal);
457
- });
458
- inputRedact = (inputVal, retry, silent) => {
459
- inputVal = inputVal || '';
460
- let inputText = !retry ? format.q(msg, !options.edit && defValue || '') + (silent ? '' : inputVal) + '\n' : '';
461
- // erase the help text, rewrite the question above, and begin the next question
462
- process.stdout.write('\x1b[' + (options.hideInfo || retry ? infoLines : 0) + 'A\x1b[J' + inputText);
463
- };
464
- mutableStdout.muted = false;
465
- if (options.silent)
466
- mutableStdout.muted = true;
467
- if (defValue && options.edit)
468
- rl.write(defValue);
469
- });
470
- }
471
- exports.input = input;
472
- ;
473
- class CtrlOption {
474
- constructor(options, rl) {
475
- this.cursol = 0;
476
- this.options = options || [];
477
- this.rl = rl;
478
- }
479
- moveUp() {
480
- let next = this.cursol + 1;
481
- this.cursol = (next >= this.options.length) ? 0 : next;
482
- this.move();
483
- }
484
- moveDown() {
485
- let next = this.cursol - 1;
486
- this.cursol = (next === -1) ? (this.options.length - 1) : next;
487
- this.move();
488
- }
489
- move() {
490
- this.rl.write(null, { ctrl: true, name: 'u' });
491
- let input = this.options[this.cursol].split('');
492
- for (let idx in input)
493
- process.stdin.emit('keypress', input[idx], { name: input[idx] });
494
- }
495
- }
496
- //# sourceMappingURL=ui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}