@typespec/compiler 1.5.0-dev.20 → 1.5.0-dev.22

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 (45) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/core/program.d.ts.map +1 -1
  3. package/dist/src/core/program.js +1 -1
  4. package/dist/src/core/program.js.map +1 -1
  5. package/dist/src/core/source-loader.d.ts +1 -1
  6. package/dist/src/core/source-loader.d.ts.map +1 -1
  7. package/dist/src/core/source-loader.js +6 -2
  8. package/dist/src/core/source-loader.js.map +1 -1
  9. package/dist/src/core/types.d.ts +1 -1
  10. package/dist/src/core/types.d.ts.map +1 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +1 -1
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/module-resolver/index.d.ts +3 -0
  16. package/dist/src/module-resolver/index.d.ts.map +1 -0
  17. package/dist/src/module-resolver/index.js +2 -0
  18. package/dist/src/module-resolver/index.js.map +1 -0
  19. package/dist/src/module-resolver/module-resolver.d.ts +3 -46
  20. package/dist/src/module-resolver/module-resolver.d.ts.map +1 -1
  21. package/dist/src/module-resolver/module-resolver.js +25 -94
  22. package/dist/src/module-resolver/module-resolver.js.map +1 -1
  23. package/dist/src/module-resolver/node-package-resolver.d.ts +24 -0
  24. package/dist/src/module-resolver/node-package-resolver.d.ts.map +1 -0
  25. package/dist/src/module-resolver/node-package-resolver.js +56 -0
  26. package/dist/src/module-resolver/node-package-resolver.js.map +1 -0
  27. package/dist/src/module-resolver/types.d.ts +47 -0
  28. package/dist/src/module-resolver/types.d.ts.map +1 -0
  29. package/dist/src/module-resolver/types.js +2 -0
  30. package/dist/src/module-resolver/types.js.map +1 -0
  31. package/dist/src/module-resolver/utils.d.ts +9 -0
  32. package/dist/src/module-resolver/utils.d.ts.map +1 -1
  33. package/dist/src/module-resolver/utils.js +53 -0
  34. package/dist/src/module-resolver/utils.js.map +1 -1
  35. package/dist/src/runner.js +1 -1
  36. package/dist/src/runner.js.map +1 -1
  37. package/dist/src/server/serverlib.js +1 -1
  38. package/dist/src/server/serverlib.js.map +1 -1
  39. package/dist/src/testing/test-compiler-host.d.ts.map +1 -1
  40. package/dist/src/testing/test-compiler-host.js +16 -7
  41. package/dist/src/testing/test-compiler-host.js.map +1 -1
  42. package/dist/src/testing/tester.d.ts.map +1 -1
  43. package/dist/src/testing/tester.js +32 -12
  44. package/dist/src/testing/tester.js.map +1 -1
  45. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import type { PackageJson } from "../types/package-json.js";
1
+ import { ModuleResolutionResult, NodePackage, ResolveModuleHost } from "./types.js";
2
2
  export interface ResolveModuleOptions {
3
3
  baseDir: string;
4
4
  /**
@@ -19,23 +19,6 @@ export interface ResolveModuleOptions {
19
19
  */
20
20
  readonly fallbackOnMissingCondition?: boolean;
21
21
  }
22
- export interface ResolveModuleHost {
23
- /**
24
- * Resolve the real path for the current host.
25
- */
26
- realpath(path: string): Promise<string>;
27
- /**
28
- * Get information about the given path
29
- */
30
- stat(path: string): Promise<{
31
- isDirectory(): boolean;
32
- isFile(): boolean;
33
- }>;
34
- /**
35
- * Read a utf-8 encoded file.
36
- */
37
- readFile(path: string): Promise<string>;
38
- }
39
22
  type ResolveModuleErrorCode = "MODULE_NOT_FOUND" | "INVALID_MAIN" | "INVALID_MODULE"
40
23
  /** When an imports points to an invalid file. */
41
24
  | "INVALID_MODULE_IMPORT_TARGET"
@@ -43,28 +26,8 @@ type ResolveModuleErrorCode = "MODULE_NOT_FOUND" | "INVALID_MAIN" | "INVALID_MOD
43
26
  | "INVALID_MODULE_EXPORT_TARGET";
44
27
  export declare class ResolveModuleError extends Error {
45
28
  code: ResolveModuleErrorCode;
46
- pkgJson?: PackageJsonFile | undefined;
47
- constructor(code: ResolveModuleErrorCode, message: string, pkgJson?: PackageJsonFile | undefined);
48
- }
49
- export type ModuleResolutionResult = ResolvedFile | ResolvedModule;
50
- export interface ResolvedFile {
51
- type: "file";
52
- path: string;
53
- }
54
- export interface ResolvedModule {
55
- type: "module";
56
- /**
57
- * Root of the package. (Same level as package.json)
58
- */
59
- path: string;
60
- /**
61
- * Resolved main file for the module.
62
- */
63
- mainFile: string;
64
- /**
65
- * Value of package.json.
66
- */
67
- manifest: PackageJson;
29
+ pkgJson?: NodePackage | undefined;
30
+ constructor(code: ResolveModuleErrorCode, message: string, pkgJson?: NodePackage | undefined);
68
31
  }
69
32
  /**
70
33
  * Resolve a module
@@ -75,11 +38,5 @@ export interface ResolvedModule {
75
38
  * @throws {ResolveModuleError} When the module cannot be resolved.
76
39
  */
77
40
  export declare function resolveModule(host: ResolveModuleHost, specifier: string, options: ResolveModuleOptions): Promise<ModuleResolutionResult>;
78
- interface PackageJsonFile extends PackageJson {
79
- readonly file: {
80
- readonly path: string;
81
- readonly text: string;
82
- };
83
- }
84
41
  export {};
85
42
  //# sourceMappingURL=module-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-resolver.d.ts","sourceRoot":"","sources":["../../../src/module-resolver/module-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAY5D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAEnC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,IAAI,OAAO,CAAC;QAAC,MAAM,IAAI,OAAO,CAAA;KAAE,CAAC,CAAC;IAE3E;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,KAAK,sBAAsB,GACvB,kBAAkB,GAClB,cAAc,GACd,gBAAgB;AAClB,iDAAiD;GAC/C,8BAA8B;AAChC,iDAAiD;GAC/C,8BAA8B,CAAC;AAEnC,qBAAa,kBAAmB,SAAQ,KAAK;IAElC,IAAI,EAAE,sBAAsB;IAE5B,OAAO,CAAC,EAAE,eAAe;gBAFzB,IAAI,EAAE,sBAAsB,EACnC,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,eAAe,YAAA;CAInC;AAID,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,cAAc,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CA8TjC;AAED,UAAU,eAAgB,SAAQ,WAAW;IAC3C,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"module-resolver.d.ts","sourceRoot":"","sources":["../../../src/module-resolver/module-resolver.ts"],"names":[],"mappings":"AASA,OAAO,EACL,sBAAsB,EACtB,WAAW,EAGX,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAapB,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAEnC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED,KAAK,sBAAsB,GACvB,kBAAkB,GAClB,cAAc,GACd,gBAAgB;AAClB,iDAAiD;GAC/C,8BAA8B;AAChC,iDAAiD;GAC/C,8BAA8B,CAAC;AAEnC,qBAAa,kBAAmB,SAAQ,KAAK;IAElC,IAAI,EAAE,sBAAsB;IAE5B,OAAO,CAAC,EAAE,WAAW;gBAFrB,IAAI,EAAE,sBAAsB,EACnC,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,WAAW,YAAA;CAI/B;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CA+RjC"}
@@ -1,8 +1,9 @@
1
- import { getDirectoryPath, joinPaths, normalizePath, resolvePath } from "../core/path-utils.js";
1
+ import { joinPaths, normalizePath, resolvePath } from "../core/path-utils.js";
2
2
  import { resolvePackageExports } from "./esm/resolve-package-exports.js";
3
3
  import { resolvePackageImports } from "./esm/resolve-package-imports.js";
4
4
  import { EsmResolveError, InvalidPackageTargetError, NoMatchingConditionsError, } from "./esm/utils.js";
5
- import { parseNodeModuleSpecifier } from "./utils.js";
5
+ import { NodePackageResolver } from "./node-package-resolver.js";
6
+ import { fileURLToPath, isFile, listDirHierarchy, parseNodeModuleSpecifier, pathToFileURL, readPackage, } from "./utils.js";
6
7
  export class ResolveModuleError extends Error {
7
8
  code;
8
9
  pkgJson;
@@ -22,6 +23,7 @@ const defaultDirectoryIndexFiles = ["index.mjs", "index.js"];
22
23
  * @throws {ResolveModuleError} When the module cannot be resolved.
23
24
  */
24
25
  export async function resolveModule(host, specifier, options) {
26
+ const nodePackageResolver = new NodePackageResolver(host);
25
27
  const { baseDir } = options;
26
28
  const absoluteStart = await realpath(resolvePath(baseDir));
27
29
  // Check if the module name is referencing a path(./foo, /foo, file:/foo)
@@ -45,14 +47,13 @@ export async function resolveModule(host, specifier, options) {
45
47
  return module;
46
48
  }
47
49
  }
48
- // Try to resolve package itself.
49
- const self = await resolveSelf(specifier, absoluteStart);
50
- if (self)
51
- return self;
52
- // Try to resolve as a node_module package.
53
- const module = await resolveAsNodeModule(specifier, absoluteStart);
54
- if (module)
55
- return module;
50
+ const moduleSpecifier = parseNodeModuleSpecifier(specifier);
51
+ if (moduleSpecifier !== null) {
52
+ const pkg = await nodePackageResolver.resolve(moduleSpecifier.packageName, absoluteStart);
53
+ const n = pkg && (await loadPackage(pkg, moduleSpecifier.subPath));
54
+ if (n)
55
+ return n;
56
+ }
56
57
  throw new ResolveModuleError("MODULE_NOT_FOUND", `Cannot find module '${specifier}' from '${baseDir}'`);
57
58
  async function realpath(path) {
58
59
  try {
@@ -65,59 +66,25 @@ export async function resolveModule(host, specifier, options) {
65
66
  throw e;
66
67
  }
67
68
  }
68
- /**
69
- * Returns a list of all the parent directory and the given one.
70
- */
71
- function listDirHierarchy(baseDir) {
72
- const paths = [baseDir];
73
- let current = getDirectoryPath(baseDir);
74
- while (current !== paths[paths.length - 1]) {
75
- paths.push(current);
76
- current = getDirectoryPath(current);
77
- }
78
- return paths;
79
- }
80
- /**
81
- * Equivalent implementation to node LOAD_PACKAGE_SELF
82
- * Resolve if the import is importing the current package.
83
- */
84
- async function resolveSelf(name, baseDir) {
85
- for (const dir of listDirHierarchy(baseDir)) {
86
- const pkgFile = resolvePath(dir, "package.json");
87
- if (!(await isFile(host, pkgFile)))
88
- continue;
89
- const pkg = await readPackage(host, pkgFile);
90
- if (pkg.name === name) {
91
- return loadPackage(dir, pkg);
92
- }
93
- else {
94
- return undefined;
95
- }
96
- }
97
- return undefined;
98
- }
99
69
  /**
100
70
  * Equivalent implementation to node LOAD_NODE_MODULES with a few non supported features.
101
71
  * Cannot load any random file under the load path(only packages).
102
72
  */
103
- async function resolveAsNodeModule(importSpecifier, baseDir) {
104
- const module = parseNodeModuleSpecifier(importSpecifier);
105
- if (module === null)
73
+ async function resolveAsNodeModule(specifier, baseDir) {
74
+ const pkg = await nodePackageResolver.resolveFromNodeModules(specifier.packageName, baseDir);
75
+ if (pkg) {
76
+ return await loadPackage(pkg, specifier.subPath);
77
+ }
78
+ else {
106
79
  return undefined;
107
- const dirs = listDirHierarchy(baseDir);
108
- for (const dir of dirs) {
109
- const n = await loadPackageAtPath(joinPaths(dir, "node_modules", module.packageName), module.subPath);
110
- if (n)
111
- return n;
112
80
  }
113
- return undefined;
114
81
  }
115
82
  async function loadPackageAtPath(path, subPath) {
116
83
  const pkgFile = resolvePath(path, "package.json");
117
84
  if (!(await isFile(host, pkgFile)))
118
85
  return undefined;
119
86
  const pkg = await readPackage(host, pkgFile);
120
- const n = await loadPackage(path, pkg, subPath);
87
+ const n = await loadPackage(pkg, subPath);
121
88
  if (n)
122
89
  return n;
123
90
  return undefined;
@@ -134,7 +101,10 @@ export async function resolveModule(host, specifier, options) {
134
101
  conditions: options.conditions ?? [],
135
102
  ignoreDefaultCondition: options.fallbackOnMissingCondition,
136
103
  resolveId: async (id, baseDir) => {
137
- const resolved = await resolveAsNodeModule(id, fileURLToPath(baseDir.toString()));
104
+ const specifier = parseNodeModuleSpecifier(id);
105
+ if (specifier === null)
106
+ return undefined;
107
+ const resolved = await resolveAsNodeModule(specifier, fileURLToPath(baseDir.toString()));
138
108
  return resolved && pathToFileURL(resolved.mainFile);
139
109
  },
140
110
  }, pkg.imports);
@@ -231,14 +201,14 @@ export async function resolveModule(host, specifier, options) {
231
201
  }
232
202
  return undefined;
233
203
  }
234
- async function loadPackage(directory, pkg, subPath) {
235
- const e = await resolveNodePackageExports(subPath ?? "", pkg, directory);
204
+ async function loadPackage(pkg, subPath) {
205
+ const e = await resolveNodePackageExports(subPath ?? "", pkg, pkg.dir);
236
206
  if (e)
237
207
  return e;
238
208
  if (subPath !== undefined && subPath !== "") {
239
209
  return undefined;
240
210
  }
241
- return loadPackageLegacy(directory, pkg);
211
+ return loadPackageLegacy(pkg.dir, pkg);
242
212
  }
243
213
  async function loadPackageLegacy(directory, pkg) {
244
214
  const mainFile = options.resolveMain ? options.resolveMain(pkg) : pkg.main;
@@ -288,43 +258,4 @@ export async function resolveModule(host, specifier, options) {
288
258
  return { type: "file", path: await realpath(path) };
289
259
  }
290
260
  }
291
- async function readPackage(host, pkgfile) {
292
- const content = await host.readFile(pkgfile);
293
- return {
294
- ...JSON.parse(content),
295
- file: {
296
- path: pkgfile,
297
- text: content,
298
- },
299
- };
300
- }
301
- async function isFile(host, path) {
302
- try {
303
- const stats = await host.stat(path);
304
- return stats.isFile();
305
- }
306
- catch (e) {
307
- if (e.code === "ENOENT" || e.code === "ENOTDIR") {
308
- return false;
309
- }
310
- throw e;
311
- }
312
- }
313
- function pathToFileURL(path) {
314
- return `file://${path}`;
315
- }
316
- function fileURLToPath(url) {
317
- if (!url.startsWith("file://"))
318
- throw new Error("Cannot convert non file: URL to path");
319
- const pathname = url.slice("file://".length);
320
- for (let n = 0; n < pathname.length; n++) {
321
- if (pathname[n] === "%") {
322
- const third = pathname.codePointAt(n + 2) | 0x20;
323
- if (pathname[n + 1] === "2" && third === 102) {
324
- throw new Error("Invalid url to path: must not include encoded / characters");
325
- }
326
- }
327
- }
328
- return decodeURIComponent(pathname);
329
- }
330
261
  //# sourceMappingURL=module-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-resolver.js","sourceRoot":"","sources":["../../../src/module-resolver/module-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-resolver.js","sourceRoot":"","sources":["../../../src/module-resolver/module-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { NodePackage, ResolveModuleHost } from "./types.js";
2
+ /**
3
+ * Utility to resolve node packages.
4
+ */
5
+ export declare class NodePackageResolver {
6
+ #private;
7
+ constructor(host: ResolveModuleHost);
8
+ /**
9
+ * Resolve a node package with the given specifier from the baseDir.
10
+ * @param specifier Node package specifier
11
+ * @returns NodePackage if found or undefined otherwise
12
+ */
13
+ resolve(specifier: string, baseDir: string): Promise<NodePackage | undefined>;
14
+ /**
15
+ * Resolve the NodePackage for the given specifier
16
+ * Implementation from LOAD_PACKAGE_SELF minus the exports resolution which is called separately.
17
+ */
18
+ resolveSelf(packageName: string, baseDir: string): Promise<NodePackage | undefined>;
19
+ /**
20
+ * Resolve a node package from `node_modules`. Follows the implementation of LOAD_NODE_MODULES minus following the exports field.
21
+ */
22
+ resolveFromNodeModules(packageName: string, baseDir: string): Promise<NodePackage | undefined>;
23
+ }
24
+ //# sourceMappingURL=node-package-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-package-resolver.d.ts","sourceRoot":"","sources":["../../../src/module-resolver/node-package-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG5D;;GAEG;AACH,qBAAa,mBAAmB;;gBAGlB,IAAI,EAAE,iBAAiB;IAInC;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAOnF;;;OAGG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAczF;;OAEG;IACG,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAcpC"}
@@ -0,0 +1,56 @@
1
+ import { joinPaths, resolvePath } from "../core/path-utils.js";
2
+ import { isFile, listDirHierarchy, readPackage } from "./utils.js";
3
+ /**
4
+ * Utility to resolve node packages.
5
+ */
6
+ export class NodePackageResolver {
7
+ #host;
8
+ constructor(host) {
9
+ this.#host = host;
10
+ }
11
+ /**
12
+ * Resolve a node package with the given specifier from the baseDir.
13
+ * @param specifier Node package specifier
14
+ * @returns NodePackage if found or undefined otherwise
15
+ */
16
+ async resolve(specifier, baseDir) {
17
+ return ((await this.resolveSelf(specifier, baseDir)) ??
18
+ (await this.resolveFromNodeModules(specifier, baseDir)));
19
+ }
20
+ /**
21
+ * Resolve the NodePackage for the given specifier
22
+ * Implementation from LOAD_PACKAGE_SELF minus the exports resolution which is called separately.
23
+ */
24
+ async resolveSelf(packageName, baseDir) {
25
+ for (const dir of listDirHierarchy(baseDir)) {
26
+ const pkgFile = resolvePath(dir, "package.json");
27
+ if (!(await isFile(this.#host, pkgFile)))
28
+ continue;
29
+ const pkg = await readPackage(this.#host, pkgFile);
30
+ if (pkg.name === packageName) {
31
+ return pkg;
32
+ }
33
+ else {
34
+ return undefined;
35
+ }
36
+ }
37
+ return undefined;
38
+ }
39
+ /**
40
+ * Resolve a node package from `node_modules`. Follows the implementation of LOAD_NODE_MODULES minus following the exports field.
41
+ */
42
+ async resolveFromNodeModules(packageName, baseDir) {
43
+ const dirs = listDirHierarchy(baseDir);
44
+ for (const dir of dirs) {
45
+ const path = joinPaths(dir, "node_modules", packageName);
46
+ const pkgFile = resolvePath(path, "package.json");
47
+ if (await isFile(this.#host, pkgFile)) {
48
+ const pkg = await readPackage(this.#host, pkgFile);
49
+ if (pkg)
50
+ return pkg;
51
+ }
52
+ }
53
+ return undefined;
54
+ }
55
+ }
56
+ //# sourceMappingURL=node-package-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-package-resolver.js","sourceRoot":"","sources":["../../../src/module-resolver/node-package-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAoB;IAEzB,YAAY,IAAuB;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,OAAe;QAC9C,OAAO,CACL,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB,EAAE,OAAe;QACpD,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAAE,SAAS;YACnD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC7B,OAAO,GAAG,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,WAAmB,EACnB,OAAe;QAEf,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAElD,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACnD,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ import { PackageJson } from "../types/package-json.js";
2
+ export interface ResolveModuleHost {
3
+ /**
4
+ * Resolve the real path for the current host.
5
+ */
6
+ realpath(path: string): Promise<string>;
7
+ /**
8
+ * Get information about the given path
9
+ */
10
+ stat(path: string): Promise<{
11
+ isDirectory(): boolean;
12
+ isFile(): boolean;
13
+ }>;
14
+ /**
15
+ * Read a utf-8 encoded file.
16
+ */
17
+ readFile(path: string): Promise<string>;
18
+ }
19
+ export type ModuleResolutionResult = ResolvedFile | ResolvedModule;
20
+ export interface ResolvedFile {
21
+ type: "file";
22
+ path: string;
23
+ }
24
+ export interface ResolvedModule {
25
+ type: "module";
26
+ /**
27
+ * Root of the package. (Same level as package.json)
28
+ */
29
+ path: string;
30
+ /**
31
+ * Resolved main file for the module.
32
+ */
33
+ mainFile: string;
34
+ /**
35
+ * Value of package.json.
36
+ */
37
+ manifest: PackageJson;
38
+ }
39
+ export interface NodePackage extends PackageJson {
40
+ /** Package root dir(Where package.json is located) */
41
+ readonly dir: string;
42
+ readonly file: {
43
+ readonly path: string;
44
+ readonly text: string;
45
+ };
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/module-resolver/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,IAAI,OAAO,CAAC;QAAC,MAAM,IAAI,OAAO,CAAA;KAAE,CAAC,CAAC;IAE3E;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,cAAc,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,sDAAsD;IACtD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/module-resolver/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,15 @@
1
+ import type { NodePackage, ResolveModuleHost } from "./types.js";
1
2
  export interface NodeModuleSpecifier {
2
3
  readonly packageName: string;
3
4
  readonly subPath: string;
4
5
  }
5
6
  export declare function parseNodeModuleSpecifier(id: string): NodeModuleSpecifier | null;
7
+ export declare function readPackage(host: ResolveModuleHost, pkgfile: string): Promise<NodePackage>;
8
+ export declare function isFile(host: ResolveModuleHost, path: string): Promise<boolean>;
9
+ export declare function pathToFileURL(path: string): string;
10
+ export declare function fileURLToPath(url: string): string;
11
+ /**
12
+ * Returns a list of all the parent directory and the given one.
13
+ */
14
+ export declare function listDirHierarchy(baseDir: string): string[];
6
15
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/module-resolver/utils.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAgB/E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/module-resolver/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAgB/E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAUhG;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,oBAUjE;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAgBxC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAS1D"}
@@ -1,3 +1,4 @@
1
+ import { getDirectoryPath } from "../core/path-utils.js";
1
2
  // returns the imported package name for bare module imports
2
3
  export function parseNodeModuleSpecifier(id) {
3
4
  if (id.startsWith(".") || id.startsWith("/")) {
@@ -13,4 +14,56 @@ export function parseNodeModuleSpecifier(id) {
13
14
  // my-package -> my-package
14
15
  return { packageName: split[0], subPath: split.slice(1).join("/") };
15
16
  }
17
+ export async function readPackage(host, pkgfile) {
18
+ const content = await host.readFile(pkgfile);
19
+ return {
20
+ ...JSON.parse(content),
21
+ dir: getDirectoryPath(pkgfile),
22
+ file: {
23
+ path: pkgfile,
24
+ text: content,
25
+ },
26
+ };
27
+ }
28
+ export async function isFile(host, path) {
29
+ try {
30
+ const stats = await host.stat(path);
31
+ return stats.isFile();
32
+ }
33
+ catch (e) {
34
+ if (e.code === "ENOENT" || e.code === "ENOTDIR") {
35
+ return false;
36
+ }
37
+ throw e;
38
+ }
39
+ }
40
+ export function pathToFileURL(path) {
41
+ return `file://${path}`;
42
+ }
43
+ export function fileURLToPath(url) {
44
+ if (!url.startsWith("file://"))
45
+ throw new Error("Cannot convert non file: URL to path");
46
+ const pathname = url.slice("file://".length);
47
+ for (let n = 0; n < pathname.length; n++) {
48
+ if (pathname[n] === "%") {
49
+ const third = pathname.codePointAt(n + 2) | 0x20;
50
+ if (pathname[n + 1] === "2" && third === 102) {
51
+ throw new Error("Invalid url to path: must not include encoded / characters");
52
+ }
53
+ }
54
+ }
55
+ return decodeURIComponent(pathname);
56
+ }
57
+ /**
58
+ * Returns a list of all the parent directory and the given one.
59
+ */
60
+ export function listDirHierarchy(baseDir) {
61
+ const paths = [baseDir];
62
+ let current = getDirectoryPath(baseDir);
63
+ while (current !== paths[paths.length - 1]) {
64
+ paths.push(current);
65
+ current = getDirectoryPath(current);
66
+ }
67
+ return paths;
68
+ }
16
69
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/module-resolver/utils.ts"],"names":[],"mappings":"AAIA,4DAA4D;AAC5D,MAAM,UAAU,wBAAwB,CAAC,EAAU;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5B,sDAAsD;IACtD,+CAA+C;IAC/C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACxB,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvF,CAAC;IAED,kCAAkC;IAClC,2BAA2B;IAC3B,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/module-resolver/utils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { access, readFile, realpath, stat } from "fs/promises";
2
2
  import { join, resolve } from "path";
3
3
  import { fileURLToPath, pathToFileURL } from "url";
4
- import { resolveModule } from "./module-resolver/module-resolver.js";
4
+ import { resolveModule } from "./module-resolver/index.js";
5
5
  /**
6
6
  * Run script given by relative path from @typespec/compiler package root.
7
7
  * Prefer local install resolved from cwd over current package.
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAqB,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAExF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,YAAoB,EAAE,UAAkB;IACtE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE/C,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;YACnD,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,6HAA6H,CAC9H,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC;SAChB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,MAAM,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAsB;YAC9B,QAAQ;YACR,QAAQ,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/D,IAAI;SACL,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC/D,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,2FAA2F,QAAQ,CAAC,IAAI,IAAI,CAC7G,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,mDAAmD;YACnD,OAAO,MAAM,kBAAkB,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,OAAO,OAAO,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAqB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,YAAoB,EAAE,UAAkB;IACtE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE/C,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;YACnD,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,6HAA6H,CAC9H,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC;SAChB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,MAAM,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAsB;YAC9B,QAAQ;YACR,QAAQ,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/D,IAAI;SACL,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC/D,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,2FAA2F,QAAQ,CAAC,IAAI,IAAI,CAC7G,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,mDAAmD;YACnD,OAAO,MAAM,kBAAkB,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,OAAO,OAAO,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC"}
@@ -18,7 +18,7 @@ import { getTypeSpecCoreTemplates } from "../init/core-templates.js";
18
18
  import { validateTemplateDefinitions } from "../init/init-template-validate.js";
19
19
  import { scaffoldNewProject } from "../init/scaffold.js";
20
20
  import { typespecVersion } from "../manifest.js";
21
- import { resolveModule } from "../module-resolver/module-resolver.js";
21
+ import { resolveModule } from "../module-resolver/index.js";
22
22
  import { listAllFilesInDir } from "../utils/fs-utils.js";
23
23
  import { getNormalizedRealPath, resolveTspMain } from "../utils/misc.js";
24
24
  import { getSemanticTokens } from "./classify.js";