arkts-lsp-proxy 0.1.1 → 0.1.3

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/dist/project.d.ts CHANGED
@@ -1,20 +1,39 @@
1
1
  export interface AceModule {
2
2
  moduleName: string;
3
3
  modulePath: string;
4
- deviceType: string[];
4
+ deviceType: Array<number | string>;
5
5
  aceLoaderPath: string;
6
- jsComponentType: number;
6
+ jsComponentType: number | 'declarative';
7
7
  sdkJsPath: string;
8
8
  compatibleSdkLevel: string;
9
+ compatibleSdkVersion: string;
9
10
  apiType: string;
11
+ packageManagerType?: string;
12
+ compileSdkLevel?: string;
13
+ compileSdkVersion?: string;
14
+ compileSdkType?: string;
15
+ runtimeOs?: string;
16
+ moduleType?: string;
17
+ compileMode?: string;
18
+ syscap?: string[];
19
+ moduleDependencies?: string[];
20
+ permissions?: string[];
21
+ packageName?: string;
10
22
  }
11
23
  export interface ProjectConfig {
12
24
  projectRoot: string;
13
25
  rootUri: string;
14
26
  lspServerWorkspacePath: string;
27
+ projectType: string;
15
28
  modules: AceModule[];
16
29
  }
17
- export declare function extractCompatibleSdkLevel(version: string): string;
18
- export declare function findProjectRoot(startDir: string): string | null;
30
+ interface ProjectParseOptions {
31
+ projectRootHint?: string;
32
+ }
33
+ export declare function findProjectRoot(startDir: string, options?: ProjectParseOptions): string | null;
19
34
  export declare function parseProject(projectRoot: string, sdkPath: string): ProjectConfig | null;
35
+ export declare function extractCompatibleSdkLevel(version: string): string;
36
+ export declare function buildInitializationOptions(project: ProjectConfig): Record<string, unknown>;
37
+ export declare function normalizeProjectRootCandidate(rawPath: string): string;
38
+ export {};
20
39
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGjE;AA2BD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW/D;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiDvF"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,aAAa,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAwBD,UAAU,mBAAmB;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8SD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAkB9F;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAkDvF;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoB1F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE"}
package/dist/project.js CHANGED
@@ -36,90 +36,358 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.extractCompatibleSdkLevel = extractCompatibleSdkLevel;
40
39
  exports.findProjectRoot = findProjectRoot;
41
40
  exports.parseProject = parseProject;
41
+ exports.extractCompatibleSdkLevel = extractCompatibleSdkLevel;
42
+ exports.buildInitializationOptions = buildInitializationOptions;
43
+ exports.normalizeProjectRootCandidate = normalizeProjectRootCandidate;
42
44
  const path = __importStar(require("path"));
43
45
  const fs = __importStar(require("fs"));
44
46
  const json5_1 = __importDefault(require("json5"));
45
- function extractCompatibleSdkLevel(version) {
46
- const match = version.match(/\((\d+)\)/);
47
- return match ? match[1] : '12';
48
- }
49
- function constructModule(name, srcPath, projectRoot, sdkPath, compatibleSdkLevel, deviceTypes) {
50
- const modulePath = path.resolve(projectRoot, srcPath);
51
- const deviceType = deviceTypes[0] || 'phone';
52
- const sdkJsPath = path.join(sdkPath, 'js', 'api', deviceType) + path.sep;
53
- const aceLoaderPath = path.join(sdkPath, 'js', 'framework', deviceType, 'ace-loader');
47
+ const node_url_1 = require("node:url");
48
+ const DEFAULT_DEVICE_TYPE = 5;
49
+ const UPWARD_SCAN_LIMIT = 12;
50
+ const DOWNWARD_SCAN_DEPTH = 4;
51
+ const DEVICE_NAME_TO_CODE = {
52
+ phone: 5,
53
+ default: 5,
54
+ tablet: 7,
55
+ tv: 1,
56
+ car: 2,
57
+ wearable: 3,
58
+ litewearable: 4,
59
+ '2in1': 8,
60
+ smartvision: 9,
61
+ };
62
+ const DEVICE_CODE_TO_NAME = {
63
+ 1: 'tv',
64
+ 2: 'car',
65
+ 3: 'wearable',
66
+ 4: 'liteWearable',
67
+ 5: 'phone',
68
+ 7: 'tablet',
69
+ 8: '2in1',
70
+ 9: 'smartVision',
71
+ };
72
+ const SCAN_EXCLUDES = new Set(['.git', 'dist', 'build', 'node_modules', '.idea', '.vscode']);
73
+ function isDirectory(p) {
74
+ try {
75
+ return fs.statSync(p).isDirectory();
76
+ }
77
+ catch {
78
+ return false;
79
+ }
80
+ }
81
+ function isFile(p) {
82
+ try {
83
+ return fs.statSync(p).isFile();
84
+ }
85
+ catch {
86
+ return false;
87
+ }
88
+ }
89
+ function toStringArray(value) {
90
+ if (!Array.isArray(value))
91
+ return [];
92
+ return value
93
+ .map((v) => (typeof v === 'string' ? v.trim() : ''))
94
+ .filter(Boolean);
95
+ }
96
+ function parseMajorVersion(value) {
97
+ if (value == null)
98
+ return '12';
99
+ const text = String(value).trim();
100
+ if (!text)
101
+ return '12';
102
+ const apiLevel = text.match(/\((\d+)\)/);
103
+ if (apiLevel)
104
+ return apiLevel[1];
105
+ const m = text.match(/(\d+)/);
106
+ return m ? m[1] : '12';
107
+ }
108
+ function parseSemanticVersion(value) {
109
+ if (value == null)
110
+ return '12.0.0';
111
+ const text = String(value).trim().replace(/\([^)]*\)/g, '').trim();
112
+ if (!text)
113
+ return '12.0.0';
114
+ if (/^\d+$/.test(text))
115
+ return `${text}.0.0`;
116
+ const segments = text.split('.').filter(Boolean);
117
+ const major = segments[0] ?? '12';
118
+ const minor = segments[1] ?? '0';
119
+ const patch = segments[2] ?? '0';
120
+ return `${major}.${minor}.${patch}`;
121
+ }
122
+ function parseDeviceType(value) {
123
+ if (value == null)
124
+ return [DEFAULT_DEVICE_TYPE];
125
+ const items = Array.isArray(value) ? value : [value];
126
+ const result = items
127
+ .map((entry) => {
128
+ if (typeof entry === 'number' && Number.isFinite(entry)) {
129
+ return Math.trunc(entry);
130
+ }
131
+ if (typeof entry !== 'string') {
132
+ return DEFAULT_DEVICE_TYPE;
133
+ }
134
+ const name = entry.toLowerCase().replace(/\s+/g, '');
135
+ return DEVICE_NAME_TO_CODE[name] ?? DEVICE_NAME_TO_CODE[name.replace('-', '')] ?? DEFAULT_DEVICE_TYPE;
136
+ })
137
+ .filter((x, i, arr) => Number.isFinite(x) && arr.indexOf(x) === i);
138
+ return result.length > 0 ? result : [DEFAULT_DEVICE_TYPE];
139
+ }
140
+ function resolveDeviceName(deviceType) {
141
+ return DEVICE_CODE_TO_NAME[deviceType] ?? 'phone';
142
+ }
143
+ function parseProjectType(_buildProfile) {
144
+ return 'application';
145
+ }
146
+ function readJson5(filePath) {
147
+ if (!isFile(filePath))
148
+ return null;
149
+ try {
150
+ return json5_1.default.parse(fs.readFileSync(filePath, 'utf-8'));
151
+ }
152
+ catch {
153
+ return null;
154
+ }
155
+ }
156
+ function getProfileProduct(profile) {
157
+ const firstProduct = (Array.isArray(profile.app?.products) ? profile.app.products[0] : null);
158
+ if (firstProduct && typeof firstProduct === 'object') {
159
+ return firstProduct;
160
+ }
54
161
  return {
55
- moduleName: name,
162
+ compatibleSdkVersion: profile?.app?.minAPIVersion,
163
+ compileSdkVersion: profile?.app?.targetAPIVersion,
164
+ compileSdkType: profile?.app?.compileSdkType,
165
+ runtimeOS: profile?.app?.runtimeOS,
166
+ compatibleDeviceType: profile?.app?.compatibleDeviceType,
167
+ };
168
+ }
169
+ function buildModuleConfig(modulePath, sdkPath, product, buildProfile, fallbackName) {
170
+ const moduleJsonPath = path.join(modulePath, 'module.json5');
171
+ const moduleDescriptor = readJson5(moduleJsonPath);
172
+ const moduleName = moduleDescriptor?.module?.name ||
173
+ path.basename(modulePath) ||
174
+ fallbackName ||
175
+ 'entry';
176
+ const productDeviceType = parseDeviceType(product.compatibleDeviceType);
177
+ const deviceType = parseDeviceType(moduleDescriptor?.module?.deviceTypes ?? productDeviceType);
178
+ const deviceName = resolveDeviceName(deviceType[0] ?? DEFAULT_DEVICE_TYPE);
179
+ const compatibleSdkVersion = parseMajorVersion(product.compatibleSdkVersion);
180
+ const compileSdkVersion = parseMajorVersion(product.compileSdkVersion ?? buildProfile.app?.targetAPIVersion);
181
+ const permissions = moduleDescriptor?.module?.requestPermissions
182
+ ? moduleDescriptor.module.requestPermissions
183
+ .map((entry) => (typeof entry?.name === 'string' ? entry.name : ''))
184
+ .filter(Boolean)
185
+ : [];
186
+ const moduleDependencies = Array.isArray(moduleDescriptor?.module?.moduleDependencies)
187
+ ? moduleDescriptor.module.moduleDependencies
188
+ : [];
189
+ return {
190
+ moduleName: String(moduleName),
56
191
  modulePath,
57
- deviceType: deviceTypes.length > 0 ? deviceTypes : ['phone'],
58
- aceLoaderPath,
59
- jsComponentType: 0,
60
- sdkJsPath,
61
- compatibleSdkLevel,
62
- apiType: 'Stage',
192
+ deviceType,
193
+ jsComponentType: 'declarative',
194
+ apiType: 'stageMode',
195
+ packageManagerType: 'ohpm',
196
+ compatibleSdkLevel: compatibleSdkVersion,
197
+ compatibleSdkVersion,
198
+ compileSdkLevel: parseMajorVersion(compileSdkVersion),
199
+ compileSdkVersion: parseSemanticVersion(compileSdkVersion),
200
+ compileSdkType: String(product.compileSdkType ?? 'Canary'),
201
+ runtimeOs: String(product.runtimeOS ?? 'OpenHarmony'),
202
+ moduleType: String(moduleDescriptor?.module?.type || 'entry'),
203
+ compileMode: 'esmodule',
204
+ syscap: [],
205
+ moduleDependencies,
206
+ permissions,
207
+ packageName: moduleDescriptor?.module?.name,
208
+ sdkJsPath: path.join(sdkPath, 'js', 'api', deviceName) + path.sep,
209
+ aceLoaderPath: path.join(sdkPath, 'js', 'framework', deviceName, 'ace-loader'),
63
210
  };
64
211
  }
65
- function findProjectRoot(startDir) {
66
- let current = path.resolve(startDir);
67
- for (let i = 0; i < 10; i++) {
68
- if (fs.existsSync(path.join(current, 'build-profile.json5'))) {
212
+ function readBuildProfile(profilePath) {
213
+ const parsed = readJson5(profilePath);
214
+ return parsed && typeof parsed === 'object' ? parsed : null;
215
+ }
216
+ function discoverModulePathsFromProfile(profileModules, projectRoot) {
217
+ const paths = [];
218
+ for (const mod of profileModules) {
219
+ const srcPath = (typeof mod?.name === 'string' && typeof mod?.srcPath !== 'string')
220
+ ? undefined
221
+ : typeof mod?.srcPath === 'string'
222
+ ? mod.srcPath
223
+ : undefined;
224
+ if (!srcPath) {
225
+ continue;
226
+ }
227
+ const absPath = path.resolve(projectRoot, srcPath);
228
+ if (isDirectory(absPath)) {
229
+ paths.push(absPath);
230
+ }
231
+ }
232
+ return paths;
233
+ }
234
+ function discoverModulePathsByScan(projectRoot) {
235
+ const likelyRoots = ['entry', path.join('entry', 'src', 'main'), path.join('src', 'main')]
236
+ .map((candidate) => path.join(projectRoot, candidate))
237
+ .filter((candidate) => isDirectory(candidate));
238
+ const result = new Set(likelyRoots);
239
+ try {
240
+ const queue = [{ dir: projectRoot, depth: 0 }];
241
+ while (queue.length > 0) {
242
+ const state = queue.shift();
243
+ if (!state)
244
+ break;
245
+ if (state.depth >= DOWNWARD_SCAN_DEPTH) {
246
+ continue;
247
+ }
248
+ const entries = fs.readdirSync(state.dir, { withFileTypes: true });
249
+ for (const entry of entries) {
250
+ if (!entry.isDirectory()) {
251
+ continue;
252
+ }
253
+ if (SCAN_EXCLUDES.has(entry.name)) {
254
+ continue;
255
+ }
256
+ const next = path.join(state.dir, entry.name);
257
+ const moduleJson = path.join(next, 'module.json5');
258
+ const buildProfile = path.join(next, 'build-profile.json5');
259
+ if (isFile(moduleJson) || isFile(buildProfile) && next !== projectRoot) {
260
+ result.add(next);
261
+ }
262
+ if (state.depth + 1 <= DOWNWARD_SCAN_DEPTH) {
263
+ queue.push({ dir: next, depth: state.depth + 1 });
264
+ }
265
+ }
266
+ }
267
+ }
268
+ catch {
269
+ // ignore unreadable folders
270
+ }
271
+ return Array.from(result);
272
+ }
273
+ function createDefaultModules(sdkPath, projectRoot, product, buildProfile) {
274
+ const defaultModulePath = path.join(projectRoot, 'entry');
275
+ const modulePath = isDirectory(defaultModulePath) ? defaultModulePath : projectRoot;
276
+ return [buildModuleConfig(modulePath, sdkPath, product, buildProfile, path.basename(modulePath))];
277
+ }
278
+ function hasBuildProfile(root) {
279
+ return isFile(path.join(root, 'build-profile.json5'));
280
+ }
281
+ function scanDownForProject(root) {
282
+ const q = [{ dir: root, depth: 0 }];
283
+ while (q.length > 0) {
284
+ const item = q.shift();
285
+ if (!item) {
286
+ continue;
287
+ }
288
+ if (hasBuildProfile(item.dir)) {
289
+ return item.dir;
290
+ }
291
+ if (item.depth >= DOWNWARD_SCAN_DEPTH) {
292
+ continue;
293
+ }
294
+ try {
295
+ const entries = fs.readdirSync(item.dir, { withFileTypes: true });
296
+ for (const entry of entries) {
297
+ if (!entry.isDirectory() || SCAN_EXCLUDES.has(entry.name)) {
298
+ continue;
299
+ }
300
+ q.push({ dir: path.join(item.dir, entry.name), depth: item.depth + 1 });
301
+ }
302
+ }
303
+ catch {
304
+ continue;
305
+ }
306
+ }
307
+ return null;
308
+ }
309
+ function findProjectRoot(startDir, options) {
310
+ const hinted = options?.projectRootHint ? path.resolve(options.projectRootHint) : null;
311
+ const candidate = hinted ?? path.resolve(startDir);
312
+ const root = isDirectory(candidate) ? candidate : path.dirname(candidate);
313
+ let current = root;
314
+ for (let i = 0; i < UPWARD_SCAN_LIMIT; i++) {
315
+ if (hasBuildProfile(current)) {
69
316
  return current;
70
317
  }
71
318
  const parent = path.dirname(current);
72
- if (parent === current)
319
+ if (parent === current) {
73
320
  break;
321
+ }
74
322
  current = parent;
75
323
  }
76
- return null;
324
+ return scanDownForProject(root);
77
325
  }
78
326
  function parseProject(projectRoot, sdkPath) {
327
+ if (!hasBuildProfile(projectRoot)) {
328
+ return null;
329
+ }
79
330
  const profilePath = path.join(projectRoot, 'build-profile.json5');
80
- if (!fs.existsSync(profilePath))
331
+ const profile = readBuildProfile(profilePath);
332
+ if (!profile) {
81
333
  return null;
82
- try {
83
- const content = fs.readFileSync(profilePath, 'utf-8');
84
- const profile = json5_1.default.parse(content);
85
- const products = profile.app?.products || [];
86
- const firstProduct = products[0];
87
- const compatibleSdkLevel = firstProduct?.compatibleSdkVersion
88
- ? extractCompatibleSdkLevel(firstProduct.compatibleSdkVersion)
89
- : '12';
90
- // Derive deviceType from product config, default to ['phone']
91
- const deviceTypes = firstProduct?.compatibleDeviceType
92
- ? (Array.isArray(firstProduct.compatibleDeviceType)
93
- ? firstProduct.compatibleDeviceType
94
- : [firstProduct.compatibleDeviceType])
95
- : ['phone'];
96
- const rawModules = profile.modules || [];
97
- const modules = [];
98
- for (const mod of rawModules) {
99
- if (!mod.name || !mod.srcPath) {
100
- process.stderr.write(`[arkts-lsp] Skipping module with missing name or srcPath\n`);
101
- continue;
102
- }
103
- modules.push(constructModule(mod.name, mod.srcPath, projectRoot, sdkPath, compatibleSdkLevel, deviceTypes));
104
- }
105
- if (modules.length === 0)
106
- return null;
107
- return {
108
- projectRoot,
109
- rootUri: 'file://' + projectRoot,
110
- lspServerWorkspacePath: projectRoot,
111
- modules,
112
- };
113
334
  }
114
- catch (e) {
115
- process.stderr.write(`[arkts-lsp] Failed to parse build-profile.json5:\n`);
116
- if (e instanceof Error) {
117
- process.stderr.write(e.stack + '\n');
118
- }
119
- else {
120
- process.stderr.write(String(e) + '\n');
335
+ const product = getProfileProduct(profile);
336
+ const compatibleSdkLevel = parseMajorVersion(product.compatibleSdkVersion ?? profile.app?.minAPIVersion);
337
+ const profileModules = Array.isArray(profile.modules) ? profile.modules.filter((m) => m && typeof m === 'object') : [];
338
+ const discoveredByProfile = discoverModulePathsFromProfile(profileModules, projectRoot);
339
+ const discoveredByScan = discoverModulePathsByScan(projectRoot);
340
+ const modulePaths = discoveredByProfile.length > 0 ? discoveredByProfile : discoveredByScan;
341
+ const modules = new Map();
342
+ for (const modulePath of modulePaths) {
343
+ const module = buildModuleConfig(modulePath, sdkPath, product, profile, path.basename(modulePath));
344
+ const resolvedPath = path.resolve(modulePath);
345
+ if (!modules.has(resolvedPath)) {
346
+ modules.set(resolvedPath, module);
121
347
  }
122
- return null;
123
348
  }
349
+ if (modules.size === 0) {
350
+ const defaults = createDefaultModules(sdkPath, projectRoot, product, profile);
351
+ defaults.forEach((mod, index) => modules.set(`${mod.modulePath}-${index}`, mod));
352
+ }
353
+ const finalModules = Array.from(modules.values()).map((m) => ({
354
+ ...m,
355
+ compatibleSdkLevel,
356
+ compatibleSdkVersion: compatibleSdkLevel,
357
+ compileSdkLevel: m.compileSdkLevel ?? compatibleSdkLevel,
358
+ compileSdkVersion: m.compileSdkVersion ?? parseSemanticVersion(product.compileSdkVersion ?? profile.app?.targetAPIVersion),
359
+ }));
360
+ return {
361
+ projectRoot,
362
+ rootUri: (0, node_url_1.pathToFileURL)(projectRoot).toString(),
363
+ lspServerWorkspacePath: projectRoot,
364
+ projectType: parseProjectType(profile),
365
+ modules: finalModules,
366
+ };
367
+ }
368
+ function extractCompatibleSdkLevel(version) {
369
+ return parseMajorVersion(version);
370
+ }
371
+ function buildInitializationOptions(project) {
372
+ const firstModule = project.modules[0];
373
+ const firstDeviceType = firstModule && firstModule.deviceType.length > 0
374
+ ? firstModule.deviceType.map((type) => (typeof type === 'number' ? type : DEFAULT_DEVICE_TYPE))
375
+ : [DEFAULT_DEVICE_TYPE];
376
+ return {
377
+ rootUri: project.rootUri,
378
+ lspServerWorkspacePath: project.lspServerWorkspacePath,
379
+ clientType: 'vscode',
380
+ projectType: project.projectType,
381
+ modules: project.modules,
382
+ isCheckJs: true,
383
+ deviceType: firstDeviceType,
384
+ indexingDataLocation: path.join(project.projectRoot, '.ide-arkts', 'indexing'),
385
+ completionSortSetting: { sortMode: 'normal' },
386
+ inlayHintsSetting: {},
387
+ lspMaxOldSpaceSize: 8192,
388
+ };
389
+ }
390
+ function normalizeProjectRootCandidate(rawPath) {
391
+ return path.resolve(rawPath);
124
392
  }
125
393
  //# sourceMappingURL=project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
package/dist/proxy.d.ts CHANGED
@@ -1,19 +1,36 @@
1
- import type { ChildProcess } from 'child_process';
2
- import type { AceModule } from './project';
3
- export interface LspMessage {
1
+ import { type MessageConnection } from 'vscode-jsonrpc/node';
2
+ import type { ChildProcess } from 'node:child_process';
3
+ import { type AceModule } from './project';
4
+ import type { DevEcoEnv } from './env';
5
+ type RawClientMessage = {
4
6
  jsonrpc?: string;
5
7
  id?: number | string;
6
8
  method?: string;
7
9
  params?: Record<string, unknown>;
10
+ };
11
+ interface LegacyPayload extends Record<string, unknown> {
12
+ rootUri: string;
13
+ lspServerWorkspacePath: string;
14
+ modules: AceModule[];
15
+ }
16
+ interface LegacyMessageAdapter {
17
+ process?: ChildProcess;
18
+ connection?: MessageConnection;
19
+ }
20
+ interface ModernMode {
21
+ env: DevEcoEnv;
22
+ projectRootHint?: string;
8
23
  }
24
+ type CreateProxyOptions = ModernMode | LegacyPayload;
9
25
  export interface InitializationPayload {
10
26
  rootUri: string;
11
27
  lspServerWorkspacePath: string;
12
28
  modules: AceModule[];
13
29
  }
14
- export declare function injectInitializationOptions(message: LspMessage, payload: InitializationPayload): LspMessage;
15
30
  export interface ProxyHandle {
16
31
  dispose: () => void;
17
32
  }
18
- export declare function createProxy(clientIn: NodeJS.ReadableStream, clientOut: NodeJS.WritableStream, aceProcess: ChildProcess, payload: InitializationPayload): ProxyHandle;
33
+ export declare function injectInitializationOptions(message: RawClientMessage, payload: Record<string, unknown>): RawClientMessage;
34
+ export declare function createProxy(clientIn: NodeJS.ReadableStream, clientOut: NodeJS.WritableStream, envOrLegacy: DevEcoEnv | LegacyMessageAdapter, maybeOptions?: CreateProxyOptions): ProxyHandle;
35
+ export {};
19
36
  //# sourceMappingURL=proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,qBAAqB,GAC7B,UAAU,CAYZ;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,CAAC,cAAc,EAC/B,SAAS,EAAE,MAAM,CAAC,cAAc,EAChC,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,qBAAqB,GAC7B,WAAW,CA6Db"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,UAAU,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,UAAU,UAAU;IAClB,GAAG,EAAE,SAAS,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,KAAK,kBAAkB,GAAG,UAAU,GAAG,aAAa,CAAC;AAkBrD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA6ZD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,gBAAgB,CAkBlB;AA2DD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,CAAC,cAAc,EAC/B,SAAS,EAAE,MAAM,CAAC,cAAc,EAChC,WAAW,EAAE,SAAS,GAAG,oBAAoB,EAC7C,YAAY,CAAC,EAAE,kBAAkB,GAChC,WAAW,CAuZb"}