@unisphere/cli 1.45.3 → 1.46.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisphere/cli",
3
- "version": "1.45.3",
3
+ "version": "1.46.0",
4
4
  "bin": {
5
5
  "unisphere": "./src/cli.js"
6
6
  },
@@ -31,7 +31,7 @@
31
31
  "rollup-plugin-analyzer": "4.0.0",
32
32
  "glob": "8.0.3",
33
33
  "rollup-plugin-shim": "1.0.0",
34
- "debug": "4.3.4",
34
+ "debug": "4.4.0",
35
35
  "commander": "9.4.1",
36
36
  "listr2": "8.2.5",
37
37
  "fs-extra": "10.1.0",
@@ -43,6 +43,7 @@
43
43
  "csvtojson": "2.0.10",
44
44
  "archiver": "5.3.2",
45
45
  "fast-glob": "3.2.12",
46
+ "express": "5.1.0",
46
47
  "@aws-sdk/client-s3": "3.216.0",
47
48
  "@aws-sdk/client-sts": "3.216.0",
48
49
  "axios": "1.2.0",
@@ -5,12 +5,14 @@ const commander_1 = require("commander");
5
5
  const command_1 = require("./publish/command");
6
6
  const build_command_1 = require("./build-command");
7
7
  const serve_command_1 = require("./serve-command");
8
+ const serve_languages_command_1 = require("./serve-languages-command");
8
9
  const createRuntimeCommand = () => {
9
10
  const runtimeCommand = new commander_1.Command('runtime');
10
11
  runtimeCommand.description('manage Unisphere runtime in the current project');
11
12
  (0, build_command_1.createBuildCommand)(runtimeCommand);
12
13
  (0, command_1.createPublishCommand)(runtimeCommand);
13
14
  (0, serve_command_1.createServeCommand)(runtimeCommand);
15
+ (0, serve_languages_command_1.createServeLanguagesCommand)(runtimeCommand);
14
16
  return runtimeCommand;
15
17
  };
16
18
  exports.createRuntimeCommand = createRuntimeCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/commands/runtime/command.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,+CAAyD;AACzD,mDAAqD;AACrD,mDAAqD;AAE9C,MAAM,oBAAoB,GAAG,GAAY,EAAE;IAChD,MAAM,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAE9E,IAAA,kCAAkB,EAAC,cAAc,CAAC,CAAC;IACnC,IAAA,8BAAoB,EAAC,cAAc,CAAC,CAAC;IACrC,IAAA,kCAAkB,EAAC,cAAc,CAAC,CAAC;IACnC,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/commands/runtime/command.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,+CAAyD;AACzD,mDAAqD;AACrD,mDAAqD;AACrD,uEAAwE;AAEjE,MAAM,oBAAoB,GAAG,GAAY,EAAE;IAChD,MAAM,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAE9E,IAAA,kCAAkB,EAAC,cAAc,CAAC,CAAC;IACnC,IAAA,8BAAoB,EAAC,cAAc,CAAC,CAAC;IACrC,IAAA,kCAAkB,EAAC,cAAc,CAAC,CAAC;IACnC,IAAA,qDAA2B,EAAC,cAAc,CAAC,CAAC;IAC5C,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AATW,QAAA,oBAAoB,wBAS/B"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const createServeLanguagesCommand: (parentCommand: Command) => Command;
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createServeLanguagesCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = require("debug");
6
+ const utils_1 = require("../../utils/utils");
7
+ const workspace_1 = require("../../utils/unisphere/workspace");
8
+ const express = require("express");
9
+ const path = require("path");
10
+ const fs = require("fs");
11
+ const glob = require("glob");
12
+ const debug = (0, debug_1.default)('unisphere:runtime:serve-languages');
13
+ const createServeLanguagesCommand = (parentCommand) => {
14
+ const command = parentCommand.command('serve-languages');
15
+ command
16
+ .description('serve languages')
17
+ .option('--verbose', 'output debug logs', false)
18
+ .option('--cwd <name>', 'the working directory')
19
+ .option('--https', 'use secure protocol')
20
+ .option('--port <port>', 'the port to serve the runtime on')
21
+ .hook('preAction', utils_1.printVerboseHook)
22
+ .action((options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
23
+ const { verbose, cwd, port, watch } = options;
24
+ const workingDirectory = cwd || process.cwd();
25
+ const servePort = port || '8001';
26
+ try {
27
+ console.log(`Starting runtime server for languages`);
28
+ debug(`Working directory: ${workingDirectory}`);
29
+ debug(`Port: ${servePort}`);
30
+ const workspace = yield (0, workspace_1.getUnisphereWorkspace)(cwd, {
31
+ suspendRecursion: true,
32
+ });
33
+ if (!workspace) {
34
+ debug(`No .unisphere file found in the directory ${cwd}`);
35
+ throw new Error(`No .unisphere file found in the directory`);
36
+ }
37
+ // Create Express server
38
+ const app = express();
39
+ // Helper function to find package directory by name
40
+ const findPackageDirectory = (packageName) => {
41
+ debug(`Searching for package: ${packageName}`);
42
+ // Define search patterns
43
+ const searchPatterns = [
44
+ {
45
+ packageRootPath: path.join(workingDirectory, 'node_modules', '@unisphere', '*', 'package.json'),
46
+ languagesPath: 'languages',
47
+ },
48
+ {
49
+ packageRootPath: path.join(workingDirectory, 'unisphere', 'packages', '*', 'package.json'),
50
+ languagesPath: 'src/languages/files',
51
+ },
52
+ ];
53
+ // Search for package.json files
54
+ const normalizedPackageName = decodeURIComponent(packageName);
55
+ let foundPackagePath = null;
56
+ for (const pattern of searchPatterns) {
57
+ debug(`Searching in pattern: ${pattern.packageRootPath}`);
58
+ const packageJsonFiles = glob.sync(pattern.packageRootPath);
59
+ for (const packageJsonFile of packageJsonFiles) {
60
+ try {
61
+ debug(`Checking package.json at: ${packageJsonFile}`);
62
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonFile, 'utf8'));
63
+ if (packageJson.name === normalizedPackageName) {
64
+ foundPackagePath = path.dirname(packageJsonFile);
65
+ debug(`Found package at: ${foundPackagePath}, returning ${foundPackagePath}/${pattern.languagesPath}`);
66
+ return path.join(foundPackagePath, pattern.languagesPath);
67
+ }
68
+ }
69
+ catch (error) {
70
+ debug(`Error parsing package.json at ${packageJsonFile}: ${error.message}`);
71
+ }
72
+ }
73
+ }
74
+ return null;
75
+ };
76
+ // Route to handle language file requests
77
+ app.get('/:packageName/:language.json', (req, res) => {
78
+ const { packageName, language } = req.params;
79
+ debug(`Received request for package: ${packageName}, language: ${language}`);
80
+ // Find the package directory
81
+ const packageDir = findPackageDirectory(packageName);
82
+ if (!packageDir) {
83
+ debug(`Package not found: ${packageName}`);
84
+ return res
85
+ .status(404)
86
+ .json({ error: `Package not found: ${packageName}` });
87
+ }
88
+ // Look for language file in the package directory
89
+ const languageFilePath = path.join(packageDir, `${language}.json`);
90
+ debug(`Checking language file: ${languageFilePath}`);
91
+ // Check if the file exists
92
+ if (fs.existsSync(languageFilePath)) {
93
+ try {
94
+ const fileContent = fs.readFileSync(languageFilePath, 'utf8');
95
+ const jsonContent = JSON.parse(fileContent);
96
+ // Set appropriate headers
97
+ res.setHeader('Content-Type', 'application/json');
98
+ res.setHeader('Access-Control-Allow-Origin', '*');
99
+ // Send the JSON content
100
+ res.status(200).json(jsonContent);
101
+ debug(`Successfully served language file: ${languageFilePath}`);
102
+ }
103
+ catch (error) {
104
+ debug(`Error reading or parsing language file: ${error.message}`);
105
+ res
106
+ .status(500)
107
+ .json({ error: 'Error reading or parsing language file' });
108
+ }
109
+ }
110
+ else {
111
+ debug(`Language file not found: ${languageFilePath}`);
112
+ res.status(404).json({ error: 'Language file not found' });
113
+ }
114
+ });
115
+ // Start the server
116
+ const server = app.listen(parseInt(servePort), () => {
117
+ console.log(`Language server running at http://localhost:${servePort}`);
118
+ console.log(`Access language files at http://localhost:${servePort}/[package-name]/[language].json`);
119
+ });
120
+ // Handle server shutdown
121
+ process.on('SIGINT', () => {
122
+ debug('Shutting down language server');
123
+ server.close(() => {
124
+ console.log('Language server stopped');
125
+ process.exit(0);
126
+ });
127
+ });
128
+ }
129
+ catch (error) {
130
+ debug('Error in serve-languages command:', error);
131
+ console.error(`Error: ${error.message}`);
132
+ process.exit(1);
133
+ }
134
+ }));
135
+ return command;
136
+ };
137
+ exports.createServeLanguagesCommand = createServeLanguagesCommand;
138
+ //# sourceMappingURL=serve-languages-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-languages-command.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/commands/runtime/serve-languages-command.ts"],"names":[],"mappings":"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"}