@theia/cli 1.67.0-next.3 → 1.67.0-next.56

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/lib/theia.js DELETED
@@ -1,602 +0,0 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2017 TypeFox and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- const fs = require("fs");
19
- const path = require("path");
20
- const temp = require("temp");
21
- const yargs = require("yargs");
22
- const yargsFactory = require("yargs/yargs");
23
- const application_manager_1 = require("@theia/application-manager");
24
- const application_package_1 = require("@theia/application-package");
25
- const check_dependencies_1 = require("./check-dependencies");
26
- const download_plugins_1 = require("./download-plugins");
27
- const run_test_1 = require("./run-test");
28
- const limiter_1 = require("limiter");
29
- const localization_manager_1 = require("@theia/localization-manager");
30
- const node_request_service_1 = require("@theia/request/lib/node-request-service");
31
- const ovsx_client_1 = require("@theia/ovsx-client");
32
- const { executablePath } = require('puppeteer');
33
- process.on('unhandledRejection', (reason, promise) => {
34
- throw reason;
35
- });
36
- process.on('uncaughtException', error => {
37
- if (error) {
38
- console.error('Uncaught Exception: ', error.toString());
39
- if (error.stack) {
40
- console.error(error.stack);
41
- }
42
- }
43
- process.exit(1);
44
- });
45
- theiaCli();
46
- function toStringArray(argv) {
47
- return argv === null || argv === void 0 ? void 0 : argv.map(arg => String(arg));
48
- }
49
- function rebuildCommand(command, target) {
50
- return {
51
- command,
52
- describe: `Rebuild/revert native node modules for "${target}"`,
53
- builder: {
54
- 'cacheRoot': {
55
- type: 'string',
56
- describe: 'Root folder where to store the .browser_modules cache'
57
- },
58
- 'modules': {
59
- alias: 'm',
60
- type: 'array', // === `--modules/-m` can be specified multiple times
61
- describe: 'List of modules to rebuild/revert'
62
- },
63
- 'forceAbi': {
64
- type: 'number',
65
- describe: 'The Node ABI version to rebuild for'
66
- }
67
- },
68
- handler: ({ cacheRoot, modules, forceAbi }) => {
69
- // Note: `modules` is actually `string[] | undefined`.
70
- if (modules) {
71
- // It is ergonomic to pass arguments as --modules="a,b,c,..."
72
- // but yargs doesn't parse it this way by default.
73
- const flattened = [];
74
- for (const value of modules) {
75
- if (value.includes(',')) {
76
- flattened.push(...value.split(',').map(mod => mod.trim()));
77
- }
78
- else {
79
- flattened.push(value);
80
- }
81
- }
82
- modules = flattened;
83
- }
84
- (0, application_manager_1.rebuild)(target, { cacheRoot, modules, forceAbi });
85
- }
86
- };
87
- }
88
- function defineCommonOptions(cli) {
89
- return cli
90
- .option('app-target', {
91
- description: 'The target application type. Overrides `theia.target` in the application\'s package.json',
92
- choices: ['browser', 'electron', 'browser-only'],
93
- });
94
- }
95
- async function theiaCli() {
96
- const { version } = await fs.promises.readFile(path.join(__dirname, '../package.json'), 'utf8').then(JSON.parse);
97
- yargs.scriptName('theia').version(version);
98
- const projectPath = process.cwd();
99
- // Create a sub `yargs` parser to read `app-target` without
100
- // affecting the global `yargs` instance used by the CLI.
101
- const { appTarget } = defineCommonOptions(yargsFactory()).help(false).parse();
102
- const manager = new application_manager_1.ApplicationPackageManager({ projectPath, appTarget });
103
- const localizationManager = new localization_manager_1.LocalizationManager();
104
- const { target } = manager.pck;
105
- defineCommonOptions(yargs)
106
- .command({
107
- command: 'start [theia-args...]',
108
- describe: `Start the ${target} backend`,
109
- // Disable this command's `--help` option so that it is forwarded to Theia's CLI
110
- builder: cli => cli.help(false),
111
- handler: async ({ theiaArgs }) => {
112
- manager.start(toStringArray(theiaArgs));
113
- }
114
- })
115
- .command({
116
- command: 'clean',
117
- describe: `Clean for the ${target} target`,
118
- handler: async () => {
119
- await manager.clean();
120
- }
121
- })
122
- .command({
123
- command: 'copy',
124
- describe: 'Copy various files from `src-gen` to `lib`',
125
- handler: async () => {
126
- await manager.copy();
127
- }
128
- })
129
- .command({
130
- command: 'generate',
131
- describe: `Generate various files for the ${target} target`,
132
- builder: cli => application_manager_1.ApplicationPackageManager.defineGeneratorOptions(cli),
133
- handler: async ({ mode, splitFrontend }) => {
134
- await manager.generate({ mode, splitFrontend });
135
- }
136
- })
137
- .command({
138
- command: 'build [webpack-args...]',
139
- describe: `Generate and bundle the ${target} frontend using webpack`,
140
- builder: cli => application_manager_1.ApplicationPackageManager.defineGeneratorOptions(cli)
141
- .option('webpack-help', {
142
- boolean: true,
143
- description: 'Display Webpack\'s help',
144
- default: false
145
- }),
146
- handler: async ({ mode, splitFrontend, webpackHelp, webpackArgs = [] }) => {
147
- await manager.build(webpackHelp
148
- ? ['--help']
149
- : [
150
- // Forward the `mode` argument to Webpack too:
151
- '--mode', mode,
152
- ...toStringArray(webpackArgs)
153
- ], { mode, splitFrontend });
154
- }
155
- })
156
- .command(rebuildCommand('rebuild', target))
157
- .command(rebuildCommand('rebuild:browser', 'browser'))
158
- .command(rebuildCommand('rebuild:electron', 'electron'))
159
- .command({
160
- command: 'check:hoisted',
161
- describe: 'Check that all dependencies are hoisted',
162
- builder: {
163
- 'suppress': {
164
- alias: 's',
165
- describe: 'Suppress exiting with failure code',
166
- boolean: true,
167
- default: false
168
- }
169
- },
170
- handler: ({ suppress }) => {
171
- (0, check_dependencies_1.default)({
172
- workspaces: ['packages/*'],
173
- include: ['**'],
174
- exclude: ['.bin/**', '.cache/**'],
175
- skipHoisted: false,
176
- skipUniqueness: true,
177
- skipSingleTheiaVersion: true,
178
- onlyTheiaExtensions: false,
179
- suppress
180
- });
181
- }
182
- })
183
- .command({
184
- command: 'check:theia-version',
185
- describe: 'Check that all dependencies have been resolved to the same Theia version',
186
- builder: {
187
- 'suppress': {
188
- alias: 's',
189
- describe: 'Suppress exiting with failure code',
190
- boolean: true,
191
- default: false
192
- }
193
- },
194
- handler: ({ suppress }) => {
195
- (0, check_dependencies_1.default)({
196
- workspaces: undefined,
197
- include: ['@theia/**'],
198
- exclude: [],
199
- skipHoisted: true,
200
- skipUniqueness: false,
201
- skipSingleTheiaVersion: false,
202
- onlyTheiaExtensions: false,
203
- suppress
204
- });
205
- }
206
- })
207
- .command({
208
- command: 'check:theia-extensions',
209
- describe: 'Check uniqueness of Theia extension versions or whether they are hoisted',
210
- builder: {
211
- 'suppress': {
212
- alias: 's',
213
- describe: 'Suppress exiting with failure code',
214
- boolean: true,
215
- default: false
216
- }
217
- },
218
- handler: ({ suppress }) => {
219
- (0, check_dependencies_1.default)({
220
- workspaces: undefined,
221
- include: ['**'],
222
- exclude: [],
223
- skipHoisted: true,
224
- skipUniqueness: false,
225
- skipSingleTheiaVersion: true,
226
- onlyTheiaExtensions: true,
227
- suppress
228
- });
229
- }
230
- })
231
- .command({
232
- command: 'check:dependencies',
233
- describe: 'Check uniqueness of dependency versions or whether they are hoisted',
234
- builder: {
235
- 'workspaces': {
236
- alias: 'w',
237
- describe: 'Glob patterns of workspaces to analyze, relative to `cwd`',
238
- array: true,
239
- defaultDescription: 'All glob patterns listed in the package.json\'s workspaces',
240
- demandOption: false
241
- },
242
- 'include': {
243
- alias: 'i',
244
- describe: 'Glob pattern of dependencies\' package names to be included, e.g. -i "@theia/**"',
245
- array: true,
246
- default: ['**']
247
- },
248
- 'exclude': {
249
- alias: 'e',
250
- describe: 'Glob pattern of dependencies\' package names to be excluded',
251
- array: true,
252
- defaultDescription: 'None',
253
- default: []
254
- },
255
- 'skip-hoisted': {
256
- alias: 'h',
257
- describe: 'Skip checking whether dependencies are hoisted',
258
- boolean: true,
259
- default: false
260
- },
261
- 'skip-uniqueness': {
262
- alias: 'u',
263
- describe: 'Skip checking whether all dependencies are resolved to a unique version',
264
- boolean: true,
265
- default: false
266
- },
267
- 'skip-single-theia-version': {
268
- alias: 't',
269
- describe: 'Skip checking whether all @theia/* dependencies are resolved to a single version',
270
- boolean: true,
271
- default: false
272
- },
273
- 'only-theia-extensions': {
274
- alias: 'o',
275
- describe: 'Only check dependencies which are Theia extensions',
276
- boolean: true,
277
- default: false
278
- },
279
- 'suppress': {
280
- alias: 's',
281
- describe: 'Suppress exiting with failure code',
282
- boolean: true,
283
- default: false
284
- }
285
- },
286
- handler: ({ workspaces, include, exclude, skipHoisted, skipUniqueness, skipSingleTheiaVersion, onlyTheiaExtensions, suppress }) => {
287
- (0, check_dependencies_1.default)({
288
- workspaces,
289
- include,
290
- exclude,
291
- skipHoisted,
292
- skipUniqueness,
293
- skipSingleTheiaVersion,
294
- onlyTheiaExtensions,
295
- suppress
296
- });
297
- }
298
- })
299
- .command({
300
- command: 'download:plugins',
301
- describe: 'Download defined external plugins',
302
- builder: {
303
- 'packed': {
304
- alias: 'p',
305
- describe: 'Controls whether to pack or unpack plugins',
306
- boolean: true,
307
- default: false,
308
- },
309
- 'ignore-errors': {
310
- alias: 'i',
311
- describe: 'Ignore errors while downloading plugins',
312
- boolean: true,
313
- default: false,
314
- },
315
- 'api-version': {
316
- alias: 'v',
317
- describe: 'Supported API version for plugins',
318
- default: application_package_1.DEFAULT_SUPPORTED_API_VERSION
319
- },
320
- 'api-url': {
321
- alias: 'u',
322
- describe: 'Open-VSX Registry API URL',
323
- default: 'https://open-vsx.org/api'
324
- },
325
- 'parallel': {
326
- describe: 'Download in parallel',
327
- boolean: true,
328
- default: true
329
- },
330
- 'rate-limit': {
331
- describe: 'Amount of maximum open-vsx requests per second',
332
- number: true,
333
- default: ovsx_client_1.OVSX_RATE_LIMIT
334
- },
335
- 'proxy-url': {
336
- describe: 'Proxy URL'
337
- },
338
- 'proxy-authorization': {
339
- describe: 'Proxy authorization information'
340
- },
341
- 'strict-ssl': {
342
- describe: 'Whether to enable strict SSL mode',
343
- boolean: true,
344
- default: false
345
- },
346
- 'ovsx-router-config': {
347
- describe: 'JSON configuration file for the OVSX router client',
348
- type: 'string'
349
- }
350
- },
351
- handler: async ({ apiUrl, proxyUrl, proxyAuthorization, strictSsl, ovsxRouterConfig, ...options }) => {
352
- const requestService = new node_request_service_1.NodeRequestService();
353
- await requestService.configure({
354
- proxyUrl,
355
- proxyAuthorization,
356
- strictSSL: strictSsl
357
- });
358
- let client;
359
- const rateLimiter = new limiter_1.RateLimiter({ tokensPerInterval: options.rateLimit, interval: 'second' });
360
- if (ovsxRouterConfig) {
361
- const routerConfig = await fs.promises.readFile(ovsxRouterConfig, 'utf8').then(JSON.parse, error => {
362
- console.error(error);
363
- });
364
- if (routerConfig) {
365
- client = await ovsx_client_1.OVSXRouterClient.FromConfig(routerConfig, ovsx_client_1.OVSXHttpClient.createClientFactory(requestService, rateLimiter), [ovsx_client_1.RequestContainsFilterFactory, ovsx_client_1.ExtensionIdMatchesFilterFactory]);
366
- }
367
- }
368
- if (!client) {
369
- client = new ovsx_client_1.OVSXHttpClient(apiUrl, requestService, rateLimiter);
370
- }
371
- await (0, download_plugins_1.default)(client, rateLimiter, requestService, options);
372
- },
373
- })
374
- .command({
375
- command: 'nls-localize [languages...]',
376
- describe: 'Localize json files using the DeepL API',
377
- builder: {
378
- 'file': {
379
- alias: 'f',
380
- describe: 'The source file which should be translated',
381
- demandOption: true
382
- },
383
- 'deepl-key': {
384
- alias: 'k',
385
- describe: 'DeepL key used for API access. See https://www.deepl.com/docs-api for more information',
386
- demandOption: true
387
- },
388
- 'free-api': {
389
- describe: 'Indicates whether the specified DeepL API key belongs to the free API',
390
- boolean: true,
391
- default: false,
392
- },
393
- 'source-language': {
394
- alias: 's',
395
- describe: 'The source language of the translation file'
396
- }
397
- },
398
- handler: async ({ freeApi, deeplKey, file, sourceLanguage, languages = [] }) => {
399
- const success = await localizationManager.localize({
400
- sourceFile: file,
401
- freeApi: freeApi !== null && freeApi !== void 0 ? freeApi : true,
402
- authKey: deeplKey,
403
- targetLanguages: languages,
404
- sourceLanguage
405
- });
406
- if (!success) {
407
- process.exit(1);
408
- }
409
- }
410
- })
411
- .command({
412
- command: 'nls-extract',
413
- describe: 'Extract translation key/value pairs from source code',
414
- builder: {
415
- 'output': {
416
- alias: 'o',
417
- describe: 'Output file for the extracted translations',
418
- demandOption: true
419
- },
420
- 'root': {
421
- alias: 'r',
422
- describe: 'The directory which contains the source code',
423
- default: '.'
424
- },
425
- 'merge': {
426
- alias: 'm',
427
- describe: 'Whether to merge new with existing translation values',
428
- boolean: true,
429
- default: false
430
- },
431
- 'exclude': {
432
- alias: 'e',
433
- describe: 'Allows to exclude translation keys starting with this value'
434
- },
435
- 'files': {
436
- alias: 'f',
437
- describe: 'Glob pattern matching the files to extract from (starting from --root).',
438
- array: true
439
- },
440
- 'logs': {
441
- alias: 'l',
442
- describe: 'File path to a log file'
443
- },
444
- 'quiet': {
445
- alias: 'q',
446
- describe: 'Prevents errors from being logged to console',
447
- boolean: true,
448
- default: false
449
- }
450
- },
451
- handler: async (options) => {
452
- await (0, localization_manager_1.extract)(options);
453
- }
454
- })
455
- .command({
456
- command: 'test [theia-args...]',
457
- builder: {
458
- 'test-inspect': {
459
- describe: 'Whether to auto-open a DevTools panel for test page.',
460
- boolean: true,
461
- default: false
462
- },
463
- 'test-extension': {
464
- describe: 'Test file extension(s) to load',
465
- array: true,
466
- default: ['js']
467
- },
468
- 'test-file': {
469
- describe: 'Specify test file(s) to be loaded prior to root suite execution',
470
- array: true,
471
- default: []
472
- },
473
- 'test-ignore': {
474
- describe: 'Ignore test file(s) or glob pattern(s)',
475
- array: true,
476
- default: []
477
- },
478
- 'test-recursive': {
479
- describe: 'Look for tests in subdirectories',
480
- boolean: true,
481
- default: false
482
- },
483
- 'test-sort': {
484
- describe: 'Sort test files',
485
- boolean: true,
486
- default: false
487
- },
488
- 'test-spec': {
489
- describe: 'One or more test files, directories, or globs to test',
490
- array: true,
491
- default: ['test']
492
- },
493
- 'test-coverage': {
494
- describe: 'Report test coverage consumable by istanbul',
495
- boolean: true,
496
- default: false
497
- }
498
- },
499
- handler: async ({ testInspect, testExtension, testFile, testIgnore, testRecursive, testSort, testSpec, testCoverage, theiaArgs }) => {
500
- if (!process.env.THEIA_CONFIG_DIR) {
501
- process.env.THEIA_CONFIG_DIR = temp.track().mkdirSync('theia-test-config-dir');
502
- }
503
- const args = ['--no-sandbox'];
504
- if (!testInspect) {
505
- args.push('--headless=old');
506
- }
507
- await (0, run_test_1.default)({
508
- start: () => new Promise((resolve, reject) => {
509
- const serverProcess = manager.start(toStringArray(theiaArgs));
510
- serverProcess.on('message', resolve);
511
- serverProcess.on('error', reject);
512
- serverProcess.on('close', (code, signal) => reject(`Server process exited unexpectedly: ${code !== null && code !== void 0 ? code : signal}`));
513
- }),
514
- launch: {
515
- args: args,
516
- // eslint-disable-next-line no-null/no-null
517
- defaultViewport: null, // view port can take available space instead of 800x600 default
518
- devtools: testInspect,
519
- headless: testInspect ? false : 'shell',
520
- executablePath: executablePath(),
521
- protocolTimeout: 600000,
522
- timeout: 60000
523
- },
524
- files: {
525
- extension: testExtension,
526
- file: testFile,
527
- ignore: testIgnore,
528
- recursive: testRecursive,
529
- sort: testSort,
530
- spec: testSpec
531
- },
532
- coverage: testCoverage
533
- });
534
- }
535
- })
536
- .command({
537
- command: 'ffmpeg:replace [ffmpeg-path]',
538
- describe: '',
539
- builder: {
540
- 'electronDist': {
541
- description: 'Electron distribution location.',
542
- },
543
- 'electronVersion': {
544
- description: 'Electron version for which to pull the "clean" ffmpeg library.',
545
- },
546
- 'ffmpegPath': {
547
- description: 'Absolute path to the ffmpeg shared library.',
548
- },
549
- 'platform': {
550
- description: 'Dictates where the library is located within the Electron distribution.',
551
- choices: ['darwin', 'linux', 'win32'],
552
- },
553
- },
554
- handler: async (options) => {
555
- const ffmpeg = await Promise.resolve().then(() => require('@theia/ffmpeg'));
556
- await ffmpeg.replaceFfmpeg(options);
557
- },
558
- })
559
- .command({
560
- command: 'ffmpeg:check [ffmpeg-path]',
561
- describe: '(electron-only) Check that ffmpeg doesn\'t contain proprietary codecs',
562
- builder: {
563
- 'electronDist': {
564
- description: 'Electron distribution location',
565
- },
566
- 'ffmpegPath': {
567
- describe: 'Absolute path to the ffmpeg shared library',
568
- },
569
- 'json': {
570
- description: 'Output the found codecs as JSON on stdout',
571
- boolean: true,
572
- },
573
- 'platform': {
574
- description: 'Dictates where the library is located within the Electron distribution',
575
- choices: ['darwin', 'linux', 'win32'],
576
- },
577
- },
578
- handler: async (options) => {
579
- const ffmpeg = await Promise.resolve().then(() => require('@theia/ffmpeg'));
580
- await ffmpeg.checkFfmpeg(options);
581
- },
582
- })
583
- .parserConfiguration({
584
- 'unknown-options-as-args': true,
585
- })
586
- .strictCommands()
587
- .demandCommand(1, 'Please run a command')
588
- .fail((msg, err, cli) => {
589
- process.exitCode = 1;
590
- if (err) {
591
- // One of the handlers threw an error:
592
- console.error(err);
593
- }
594
- else {
595
- // Yargs detected a problem with commands and/or arguments while parsing:
596
- cli.showHelp();
597
- console.error(msg);
598
- }
599
- })
600
- .parse();
601
- }
602
- //# sourceMappingURL=theia.js.map
package/lib/theia.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"theia.js","sourceRoot":"","sources":["../src/theia.ts"],"names":[],"mappings":"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"}