@typespec/compiler 0.67.0-dev.10 → 0.67.0-dev.11
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/manifest.js +2 -2
- package/dist/src/core/cli/cli.js +8 -2
- package/dist/src/core/cli/cli.js.map +1 -1
- package/dist/src/core/diagnostic-error.d.ts +7 -0
- package/dist/src/core/diagnostic-error.d.ts.map +1 -0
- package/dist/src/core/diagnostic-error.js +9 -0
- package/dist/src/core/diagnostic-error.js.map +1 -0
- package/dist/src/init/init.d.ts.map +1 -1
- package/dist/src/init/init.js +6 -2
- package/dist/src/init/init.js.map +1 -1
- package/dist/src/install/config.d.ts +9 -0
- package/dist/src/install/config.d.ts.map +1 -0
- package/dist/src/install/config.js +16 -0
- package/dist/src/install/config.js.map +1 -0
- package/dist/src/install/install.d.ts +14 -0
- package/dist/src/install/install.d.ts.map +1 -0
- package/dist/src/install/install.js +159 -0
- package/dist/src/install/install.js.map +1 -0
- package/dist/src/install/spec.d.ts +39 -0
- package/dist/src/install/spec.d.ts.map +1 -0
- package/dist/src/install/spec.js +152 -0
- package/dist/src/install/spec.js.map +1 -0
- package/dist/src/package-manger/npm-registry-utils.d.ts +83 -0
- package/dist/src/package-manger/npm-registry-utils.d.ts.map +1 -0
- package/dist/src/package-manger/npm-registry-utils.js +42 -0
- package/dist/src/package-manger/npm-registry-utils.js.map +1 -0
- package/dist/src/types/package-json.d.ts +14 -0
- package/dist/src/types/package-json.d.ts.map +1 -1
- package/dist/src/utils/fs-utils.d.ts +3 -0
- package/dist/src/utils/fs-utils.d.ts.map +1 -0
- package/dist/src/utils/fs-utils.js +19 -0
- package/dist/src/utils/fs-utils.js.map +1 -0
- package/package.json +3 -3
- package/dist/src/core/install.d.ts +0 -3
- package/dist/src/core/install.d.ts.map +0 -1
- package/dist/src/core/install.js +0 -60
- package/dist/src/core/install.js.map +0 -1
package/dist/manifest.js
CHANGED
package/dist/src/core/cli/cli.js
CHANGED
|
@@ -7,9 +7,9 @@ catch {
|
|
|
7
7
|
// package only present in dev.
|
|
8
8
|
}
|
|
9
9
|
import yargs from "yargs";
|
|
10
|
+
import { installTypeSpecDependencies } from "../../install/install.js";
|
|
10
11
|
import { typespecVersion } from "../../utils/misc.js";
|
|
11
12
|
import { getTypeSpecEngine } from "../engine.js";
|
|
12
|
-
import { installTypeSpecDependencies } from "../install.js";
|
|
13
13
|
import { compileAction } from "./actions/compile/compile.js";
|
|
14
14
|
import { formatAction } from "./actions/format.js";
|
|
15
15
|
import { printInfoAction } from "./actions/info.js";
|
|
@@ -153,7 +153,13 @@ async function main() {
|
|
|
153
153
|
type: "string",
|
|
154
154
|
description: "Name of the template to use",
|
|
155
155
|
}), withCliHostAndDiagnostics((host, args) => initAction(host, args)))
|
|
156
|
-
.command("install", "Install TypeSpec dependencies", () =>
|
|
156
|
+
.command("install", "Install TypeSpec dependencies", (cmd) => cmd.option("save-package-manager", {
|
|
157
|
+
type: "boolean",
|
|
158
|
+
description: "Update the packageManager field with the package manger version and hash",
|
|
159
|
+
}), withCliHostAndDiagnostics((host, args) => installTypeSpecDependencies(host, {
|
|
160
|
+
directory: process.cwd(),
|
|
161
|
+
savePackageManager: args["save-package-manager"],
|
|
162
|
+
})))
|
|
157
163
|
.command("info", "Show information about the current TypeSpec compiler.", () => { }, withCliHostAndDiagnostics((host) => printInfoAction(host)))
|
|
158
164
|
.version(getTypeSpecEngine() === "tsp" ? `${typespecVersion} standalone` : typespecVersion)
|
|
159
165
|
.demandCommand(1, "You must use one of the supported commands.").argv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC;IACH,6DAA6D;IAC7D,aAAa;IACb,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;AACjD,CAAC;AAAC,MAAM,CAAC;IACP,+BAA+B;AACjC,CAAC;AAED,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Diagnostic } from "./types.js";
|
|
2
|
+
/** Error that reuse the diagnostic system. */
|
|
3
|
+
export declare class DiagnosticError extends Error {
|
|
4
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
5
|
+
constructor(diagnostics: Diagnostic | readonly Diagnostic[]);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=diagnostic-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic-error.d.ts","sourceRoot":"","sources":["../../../src/core/diagnostic-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,8CAA8C;AAC9C,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;gBAEhC,WAAW,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE;CAI5D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Error that reuse the diagnostic system. */
|
|
2
|
+
export class DiagnosticError extends Error {
|
|
3
|
+
diagnostics;
|
|
4
|
+
constructor(diagnostics) {
|
|
5
|
+
super();
|
|
6
|
+
this.diagnostics = Array.isArray(diagnostics) ? diagnostics : [diagnostics];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=diagnostic-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic-error.js","sourceRoot":"","sources":["../../../src/core/diagnostic-error.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,WAAW,CAAwB;IAE5C,YAAY,WAA+C;QACzD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAgB,UAAU,EAAY,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMlF,OAAO,EAAmB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAInE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,iBAYzC;AACD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,iBAgFzC;AA2DD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAmKD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,WAAW,EAAE,SAAS,UAAU,EAAE;gBAAlC,WAAW,EAAE,SAAS,UAAU,EAAE;CAGtD;AAiDD,eAAO,MAAM,aAAa,UAED,CAAC;AAE1B,wBAAgB,aAAa,iBAO5B"}
|
package/dist/src/init/init.js
CHANGED
|
@@ -2,10 +2,10 @@ import { confirm as confirmInquirer, input, select } from "@inquirer/prompts";
|
|
|
2
2
|
import { readdir } from "fs/promises";
|
|
3
3
|
import pc from "picocolors";
|
|
4
4
|
import * as semver from "semver";
|
|
5
|
-
import { installTypeSpecDependencies } from "../core/install.js";
|
|
6
5
|
import { createDiagnostic } from "../core/messages.js";
|
|
7
6
|
import { getBaseFileName, getDirectoryPath } from "../core/path-utils.js";
|
|
8
7
|
import { NoTarget } from "../core/types.js";
|
|
8
|
+
import { installTypeSpecDependencies } from "../install/install.js";
|
|
9
9
|
import { MANIFEST } from "../manifest.js";
|
|
10
10
|
import { readUrlOrPath } from "../utils/misc.js";
|
|
11
11
|
import { getTypeSpecCoreTemplates } from "./core-templates.js";
|
|
@@ -62,7 +62,11 @@ export async function initTypeSpecProjectWorker(host, directory, options = {}) {
|
|
|
62
62
|
const projectJsonCreated = !isFileSkipGeneration("package.json", scaffoldingConfig.template.files ?? []);
|
|
63
63
|
whiteline();
|
|
64
64
|
if (projectJsonCreated) {
|
|
65
|
-
await action("Installing dependencies", async () => await installTypeSpecDependencies(host,
|
|
65
|
+
await action("Installing dependencies", async () => await installTypeSpecDependencies(host, {
|
|
66
|
+
directory,
|
|
67
|
+
stdio: "pipe",
|
|
68
|
+
savePackageManager: true,
|
|
69
|
+
}));
|
|
66
70
|
}
|
|
67
71
|
whiteline();
|
|
68
72
|
success("Project initialized!");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface PackageManagerConfig {
|
|
2
|
+
commands: {
|
|
3
|
+
install: string[];
|
|
4
|
+
};
|
|
5
|
+
}
|
|
6
|
+
export type SupportedPackageManager = "npm";
|
|
7
|
+
export declare function isSupportedPackageManager(value: string): value is SupportedPackageManager;
|
|
8
|
+
export declare function getPackageManagerConfig(name: SupportedPackageManager): PackageManagerConfig;
|
|
9
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/install/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAY5C,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,uBAAuB,CAEzF;AACD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,GAAG,oBAAoB,CAE3F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const SupportedPackageManagersConfig = {
|
|
2
|
+
npm: {
|
|
3
|
+
commands: {
|
|
4
|
+
install: ["install"],
|
|
5
|
+
},
|
|
6
|
+
},
|
|
7
|
+
// pnpm: {},
|
|
8
|
+
// yarn: {},
|
|
9
|
+
};
|
|
10
|
+
export function isSupportedPackageManager(value) {
|
|
11
|
+
return value in SupportedPackageManagersConfig;
|
|
12
|
+
}
|
|
13
|
+
export function getPackageManagerConfig(name) {
|
|
14
|
+
return SupportedPackageManagersConfig[name];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/install/config.ts"],"names":[],"mappings":"AAQA,MAAM,8BAA8B,GAA0D;IAC5F,GAAG,EAAE;QACH,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB;KACF;IACD,YAAY;IACZ,YAAY;CACJ,CAAC;AAEX,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAO,KAAK,IAAI,8BAA8B,CAAC;AACjD,CAAC;AACD,MAAM,UAAU,uBAAuB,CAAC,IAA6B;IACnE,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CliCompilerHost } from "../core/cli/types.js";
|
|
2
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
3
|
+
import { type Diagnostic } from "../core/types.js";
|
|
4
|
+
export declare class InstallDependenciesError extends DiagnosticError {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
export interface InstallTypeSpecDependenciesOptions {
|
|
8
|
+
readonly directory: string;
|
|
9
|
+
readonly stdio?: "inherit" | "pipe";
|
|
10
|
+
/** When set to true update the packageManager field with the package manger version and hash */
|
|
11
|
+
readonly savePackageManager?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function installTypeSpecDependencies(host: CliCompilerHost, options: InstallTypeSpecDependenciesOptions): Promise<readonly Diagnostic[]>;
|
|
14
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAI9D,OAAO,EAAY,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AA8B1E,qBAAa,wBAAyB,SAAQ,eAAe;gBAC/C,OAAO,EAAE,MAAM;CAQ5B;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACpC,gGAAgG;IAChG,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AA0ED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAkDhC"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { fork } from "child_process";
|
|
2
|
+
import envPaths from "env-paths";
|
|
3
|
+
import { mkdir, rename, rm } from "fs/promises";
|
|
4
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
5
|
+
import { createDiagnosticCollector } from "../core/diagnostics.js";
|
|
6
|
+
import { createTracer } from "../core/logger/tracer.js";
|
|
7
|
+
import { joinPaths } from "../core/path-utils.js";
|
|
8
|
+
import { NoTarget } from "../core/types.js";
|
|
9
|
+
import { downloadAndExtractPackage, fetchPackageManifest, } from "../package-manger/npm-registry-utils.js";
|
|
10
|
+
import { mkTempDir } from "../utils/fs-utils.js";
|
|
11
|
+
import { getPackageManagerConfig, } from "./config.js";
|
|
12
|
+
import { resolvePackageManagerSpec, updatePackageManagerInPackageJson, } from "./spec.js";
|
|
13
|
+
const paths = envPaths("typespec", { suffix: "" });
|
|
14
|
+
const pmDir = joinPaths(paths.cache, "pm");
|
|
15
|
+
export class InstallDependenciesError extends DiagnosticError {
|
|
16
|
+
constructor(message) {
|
|
17
|
+
super({
|
|
18
|
+
code: "install-package-manager-error",
|
|
19
|
+
message,
|
|
20
|
+
severity: "error",
|
|
21
|
+
target: NoTarget,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function resolvePackageManagerSpecOrFail(host, tracer, options) {
|
|
26
|
+
const result = await resolvePackageManagerSpec(host, tracer, options.directory);
|
|
27
|
+
switch (result.kind) {
|
|
28
|
+
case "no-package":
|
|
29
|
+
throw new InstallDependenciesError("No package.json found, cannot install dependencies.");
|
|
30
|
+
case "no-spec":
|
|
31
|
+
return [
|
|
32
|
+
{
|
|
33
|
+
kind: "resolved",
|
|
34
|
+
spec: {
|
|
35
|
+
name: "npm",
|
|
36
|
+
range: "latest",
|
|
37
|
+
},
|
|
38
|
+
path: result.path,
|
|
39
|
+
},
|
|
40
|
+
options.savePackageManager
|
|
41
|
+
? [
|
|
42
|
+
{
|
|
43
|
+
code: "no-package-manager-spec",
|
|
44
|
+
severity: "warning",
|
|
45
|
+
message: "No package manager spec found, defaulted to npm latest version. Please set devEngines.packageManager or packageManager in your package.json.",
|
|
46
|
+
target: NoTarget,
|
|
47
|
+
},
|
|
48
|
+
]
|
|
49
|
+
: [],
|
|
50
|
+
];
|
|
51
|
+
case "resolved":
|
|
52
|
+
return [result, []];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function installPackageManager(host, tracer, packageManager, spec, installDir, manifest) {
|
|
56
|
+
await rm(installDir, { recursive: true, force: true });
|
|
57
|
+
await mkdir(installDir, { recursive: true });
|
|
58
|
+
const tempDir = await mkTempDir(host, pmDir, `tsp-pm-${packageManager}-${manifest.version}`);
|
|
59
|
+
tracer.trace("downloading-extracting", `Downloading and extracting ${packageManager} at version ${manifest.version} in ${tempDir}`);
|
|
60
|
+
const extractResult = await downloadAndExtractPackage(manifest, tempDir, spec.hash?.algorithm);
|
|
61
|
+
if (spec.hash) {
|
|
62
|
+
if (spec.hash.value !== extractResult.hash.value) {
|
|
63
|
+
throw new InstallDependenciesError(`Mismatch hash for package manager. (${spec.hash.algorithm})\n Expected: ${spec.hash.value}\n Actual: ${extractResult.hash}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
tracer.trace("move-temp-to-install", `Move temporary directory ${tempDir} to install directory ${installDir}`);
|
|
67
|
+
await rename(tempDir, installDir);
|
|
68
|
+
tracer.trace("downloaded", `Downloaded and extracted at ${installDir}`);
|
|
69
|
+
return extractResult;
|
|
70
|
+
}
|
|
71
|
+
export async function installTypeSpecDependencies(host, options) {
|
|
72
|
+
const { directory, stdio = "inherit", savePackageManager } = options;
|
|
73
|
+
const diagnostics = createDiagnosticCollector();
|
|
74
|
+
const tracer = createTracer(host.logger).sub("install");
|
|
75
|
+
try {
|
|
76
|
+
const { spec, path: packageJsonPath } = diagnostics.pipe(await resolvePackageManagerSpecOrFail(host, tracer, options));
|
|
77
|
+
const packageManager = spec.name;
|
|
78
|
+
const packageManagerConfig = getPackageManagerConfig(packageManager);
|
|
79
|
+
const manifest = await fetchPackageManifest(packageManager, spec.range);
|
|
80
|
+
tracer.trace("fetched-manifest", `Resolved manifest for ${packageManager} at version ${manifest.version}`);
|
|
81
|
+
const installDir = joinPaths(pmDir, packageManager, manifest.version);
|
|
82
|
+
if ((await isDirectory(host, installDir)) && !savePackageManager) {
|
|
83
|
+
tracer.trace("reusing", `Reusing cached package manager in ${installDir}`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const extractResult = await installPackageManager(host, tracer, packageManager, spec, installDir, manifest);
|
|
87
|
+
if (savePackageManager) {
|
|
88
|
+
await updatePackageManagerInPackageJson(host, packageJsonPath, {
|
|
89
|
+
name: spec.name,
|
|
90
|
+
range: manifest.version,
|
|
91
|
+
hash: extractResult.hash,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const bin = manifest.bin[packageManager];
|
|
96
|
+
const binPath = joinPaths(installDir, bin);
|
|
97
|
+
tracer.trace("running-binary", `Running binary ${binPath}`);
|
|
98
|
+
await runPackageManager(host, packageManagerConfig, binPath, directory, stdio);
|
|
99
|
+
return diagnostics.diagnostics;
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
if (e instanceof DiagnosticError) {
|
|
103
|
+
return [...diagnostics.diagnostics, ...e.diagnostics];
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw e;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async function runPackageManager(host, packageManager, binPath, directory, stdio) {
|
|
111
|
+
const child = fork(binPath, packageManager.commands.install, {
|
|
112
|
+
stdio,
|
|
113
|
+
cwd: directory,
|
|
114
|
+
env: process.env,
|
|
115
|
+
});
|
|
116
|
+
const stdout = [];
|
|
117
|
+
if (child.stdout) {
|
|
118
|
+
child.stdout.on("data", (data) => {
|
|
119
|
+
stdout.push(data.toString());
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (child.stderr) {
|
|
123
|
+
child.stderr.on("data", (data) => {
|
|
124
|
+
stdout.push(data.toString());
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
await new Promise((resolve, reject) => {
|
|
128
|
+
child.on("error", (error) => {
|
|
129
|
+
if (error.code === "ENOENT") {
|
|
130
|
+
host.logger.error("Cannot find `npm` executable. Make sure to have npm installed in your path.");
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
host.logger.error(error.toString());
|
|
134
|
+
}
|
|
135
|
+
process.exit(error.errno);
|
|
136
|
+
});
|
|
137
|
+
child.on("exit", (exitCode) => {
|
|
138
|
+
if (exitCode !== 0) {
|
|
139
|
+
reject(new Error(`Npm installed failed with exit code ${exitCode}\n${stdout.join("\n")}`));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
resolve();
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
async function isDirectory(host, path) {
|
|
148
|
+
try {
|
|
149
|
+
const stats = await host.stat(path);
|
|
150
|
+
return stats.isDirectory();
|
|
151
|
+
}
|
|
152
|
+
catch (e) {
|
|
153
|
+
if (e.code === "ENOENT" || e.code === "ENOTDIR") {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
throw e;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
2
|
+
import type { CompilerHost, SourceFile, Tracer } from "../core/types.js";
|
|
3
|
+
import { type SupportedPackageManager } from "./config.js";
|
|
4
|
+
export interface Descriptor {
|
|
5
|
+
/** Name of the package manager */
|
|
6
|
+
readonly name: SupportedPackageManager;
|
|
7
|
+
/** Supported version range */
|
|
8
|
+
readonly range: string;
|
|
9
|
+
readonly hash?: Hash;
|
|
10
|
+
}
|
|
11
|
+
export interface Hash {
|
|
12
|
+
readonly algorithm: string;
|
|
13
|
+
readonly value: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ResolvedSpecResult {
|
|
16
|
+
readonly kind: "resolved";
|
|
17
|
+
/** Path to the resolved package.json */
|
|
18
|
+
readonly path: string;
|
|
19
|
+
/** Resolved spec of the package manager */
|
|
20
|
+
readonly spec: Descriptor;
|
|
21
|
+
}
|
|
22
|
+
type PackageManagerSpecResult = {
|
|
23
|
+
readonly kind: "no-package";
|
|
24
|
+
readonly path: string;
|
|
25
|
+
} | {
|
|
26
|
+
readonly kind: "no-spec";
|
|
27
|
+
readonly path: string;
|
|
28
|
+
} | ResolvedSpecResult;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve the package manager required for the current working directory.
|
|
31
|
+
* @throws {PackageManagerSpecError} if there is error resolving it(Invalid package.json, invalid packageManager field)
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolvePackageManagerSpec(host: CompilerHost, parentTracer: Tracer, cwd: string): Promise<PackageManagerSpecResult>;
|
|
34
|
+
export declare function updatePackageManagerInPackageJson(host: CompilerHost, path: string, spec: Descriptor): Promise<void>;
|
|
35
|
+
export declare class PackageManagerSpecError extends DiagnosticError {
|
|
36
|
+
constructor(message: string, source: SourceFile);
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/install/spec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtF,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAEvC,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,KAAK,wBAAwB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD,kBAAkB,CAAC;AAIvB;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,wBAAwB,CAAC,CAuCnC;AAMD,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,iBAKjB;AA6ID,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;CAQhD"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import semverParse from "semver/functions/parse.js";
|
|
2
|
+
import semverSatisfies from "semver/functions/satisfies.js";
|
|
3
|
+
import semverValid from "semver/functions/valid.js";
|
|
4
|
+
import semverValidRange from "semver/ranges/valid.js";
|
|
5
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
6
|
+
import { getDirectoryPath, joinPaths } from "../core/path-utils.js";
|
|
7
|
+
import { isSupportedPackageManager } from "./config.js";
|
|
8
|
+
const nodeModulesRegExp = /\/node_modules\//;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the package manager required for the current working directory.
|
|
11
|
+
* @throws {PackageManagerSpecError} if there is error resolving it(Invalid package.json, invalid packageManager field)
|
|
12
|
+
*/
|
|
13
|
+
export async function resolvePackageManagerSpec(host, parentTracer, cwd) {
|
|
14
|
+
const tracer = parentTracer.sub("pm-spec");
|
|
15
|
+
let nextCwd = cwd;
|
|
16
|
+
let currentCwd = "";
|
|
17
|
+
let resolved = null;
|
|
18
|
+
while (nextCwd !== currentCwd && !resolved) {
|
|
19
|
+
currentCwd = nextCwd;
|
|
20
|
+
nextCwd = getDirectoryPath(currentCwd);
|
|
21
|
+
if (nodeModulesRegExp.test(currentCwd))
|
|
22
|
+
continue;
|
|
23
|
+
const pkgJsonPath = joinPaths(currentCwd, "package.json");
|
|
24
|
+
const packageJson = await readPackage(host, pkgJsonPath);
|
|
25
|
+
if (packageJson) {
|
|
26
|
+
resolved = packageJson;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (resolved === null) {
|
|
30
|
+
return { kind: "no-package", path: cwd };
|
|
31
|
+
}
|
|
32
|
+
const [packageJson, source] = resolved;
|
|
33
|
+
const spec = extractSpecFromPackageJson(tracer, packageJson, source);
|
|
34
|
+
if (spec === undefined) {
|
|
35
|
+
return { kind: "no-spec", path: source.path };
|
|
36
|
+
}
|
|
37
|
+
tracer.trace("resolved", `${source.path} defines ${spec} as local package manager`);
|
|
38
|
+
return {
|
|
39
|
+
kind: "resolved",
|
|
40
|
+
path: source.path,
|
|
41
|
+
spec,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function serializeSpec(spec) {
|
|
45
|
+
return `${spec.name}@${spec.range}${spec.hash ? `+${spec.hash.algorithm}.${spec.hash.value}` : ""}`;
|
|
46
|
+
}
|
|
47
|
+
export async function updatePackageManagerInPackageJson(host, path, spec) {
|
|
48
|
+
const [pkg] = (await readPackage(host, path));
|
|
49
|
+
pkg.packageManager = serializeSpec(spec);
|
|
50
|
+
return host.writeFile(path, JSON.stringify(pkg, undefined, 2));
|
|
51
|
+
}
|
|
52
|
+
async function readPackage(host, path) {
|
|
53
|
+
let file;
|
|
54
|
+
try {
|
|
55
|
+
file = await host.readFile(path);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (err?.code === "ENOENT")
|
|
59
|
+
return undefined;
|
|
60
|
+
throw err;
|
|
61
|
+
}
|
|
62
|
+
let packageJson;
|
|
63
|
+
try {
|
|
64
|
+
packageJson = JSON.parse(file.text);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
if (typeof packageJson !== "object" || packageJson === null) {
|
|
70
|
+
throw new PackageManagerSpecError(`Invalid package.json ${path}}`, file);
|
|
71
|
+
}
|
|
72
|
+
return [packageJson, file];
|
|
73
|
+
}
|
|
74
|
+
function extractSpecFromPackageJson(tracer, packageJSONContent, source) {
|
|
75
|
+
const pm = packageJSONContent.packageManager
|
|
76
|
+
? parsePackageManagerField(packageJSONContent.packageManager, source)
|
|
77
|
+
: undefined;
|
|
78
|
+
const devEnginePm = packageJSONContent.devEngines?.packageManager;
|
|
79
|
+
if (devEnginePm != null) {
|
|
80
|
+
if (typeof devEnginePm !== "object") {
|
|
81
|
+
return pm;
|
|
82
|
+
}
|
|
83
|
+
if (Array.isArray(devEnginePm)) {
|
|
84
|
+
return pm;
|
|
85
|
+
}
|
|
86
|
+
const { name, version } = devEnginePm;
|
|
87
|
+
validatePackageManager(name, source);
|
|
88
|
+
if (typeof name !== "string" || name.includes("@")) {
|
|
89
|
+
throw new PackageManagerSpecError(`devEngines.packageManager.name ${JSON.stringify(name)} must be a package manager name without the version`, source);
|
|
90
|
+
}
|
|
91
|
+
if (version == null || typeof version !== "string" || !semverValidRange(version)) {
|
|
92
|
+
throw new PackageManagerSpecError(`devEngines.packageManager.version ${JSON.stringify(version)} is not a valid semver range`, source);
|
|
93
|
+
}
|
|
94
|
+
validateVersionNotUrl(version, source);
|
|
95
|
+
tracer.trace("devEngines", `devEngines.packageManager specify ${name}@${version}`);
|
|
96
|
+
if (pm) {
|
|
97
|
+
if (pm.name !== name)
|
|
98
|
+
throw new PackageManagerSpecError(`"packageManager" field "${pm}" does not match name of "devEngines.packageManager" set to "${name}"`, source);
|
|
99
|
+
else if (version != null && !semverSatisfies(pm.range, version))
|
|
100
|
+
throw new PackageManagerSpecError(`"packageManager" field is set to "${pm}" does not match the version defined in "devEngines.packageManager" "${name}" @ "${version}"`, source);
|
|
101
|
+
return pm;
|
|
102
|
+
}
|
|
103
|
+
return { name, range: version };
|
|
104
|
+
}
|
|
105
|
+
return pm;
|
|
106
|
+
}
|
|
107
|
+
function validatePackageManager(name, source) {
|
|
108
|
+
if (!isSupportedPackageManager(name)) {
|
|
109
|
+
throw new PackageManagerSpecError(`Unsupported packageManager specification: Package manager ${name} is not supported.`, source);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function validateVersionNotUrl(version, source) {
|
|
113
|
+
const isURL = URL.canParse(version);
|
|
114
|
+
if (isURL) {
|
|
115
|
+
throw new PackageManagerSpecError(`Urls are not supported for package manager specifications "${version}"`, source);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function parsePackageManagerField(raw, source) {
|
|
119
|
+
if (typeof raw !== "string") {
|
|
120
|
+
throw new PackageManagerSpecError(`Invalid packageManager field : expected a string`, source);
|
|
121
|
+
}
|
|
122
|
+
const atIndex = raw.indexOf("@");
|
|
123
|
+
if (atIndex === -1 || atIndex === raw.length - 1) {
|
|
124
|
+
throw new PackageManagerSpecError(`Invalid packageManager field "${raw}": a version to be specified for package manager.`, source);
|
|
125
|
+
}
|
|
126
|
+
const name = raw.slice(0, atIndex);
|
|
127
|
+
const version = raw.slice(atIndex + 1);
|
|
128
|
+
validatePackageManager(name, source);
|
|
129
|
+
validateVersionNotUrl(version, source);
|
|
130
|
+
if (!semverValid(version))
|
|
131
|
+
throw new PackageManagerSpecError(`Invalid packageManager field "${raw}": expected a semver version`, source);
|
|
132
|
+
const semver = semverParse(version);
|
|
133
|
+
const hash = semver.build[0] && semver.build[1]
|
|
134
|
+
? { algorithm: semver.build[0], value: semver.build[1] }
|
|
135
|
+
: undefined;
|
|
136
|
+
return {
|
|
137
|
+
name,
|
|
138
|
+
range: semver.version,
|
|
139
|
+
hash,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
export class PackageManagerSpecError extends DiagnosticError {
|
|
143
|
+
constructor(message, source) {
|
|
144
|
+
super({
|
|
145
|
+
code: "invalid-package-manager-spec",
|
|
146
|
+
message,
|
|
147
|
+
severity: "error",
|
|
148
|
+
target: { file: source, pos: 0, end: 0 },
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/install/spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Hash } from "../install/spec.js";
|
|
2
|
+
/** Manifest of a single package version. */
|
|
3
|
+
export interface NpmManifest {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly version: string;
|
|
6
|
+
readonly dependencies: Record<string, string>;
|
|
7
|
+
readonly optionalDependencies: Record<string, string>;
|
|
8
|
+
readonly devDependencies: Record<string, string>;
|
|
9
|
+
readonly peerDependencies: Record<string, string>;
|
|
10
|
+
readonly bundleDependencies: false | string[];
|
|
11
|
+
readonly dist: NpmPackageDist;
|
|
12
|
+
readonly bin: Record<string, string> | null;
|
|
13
|
+
readonly _shrinkwrap: Record<string, unknown> | null;
|
|
14
|
+
readonly engines?: Record<string, string> | undefined;
|
|
15
|
+
readonly cpu?: string[] | undefined;
|
|
16
|
+
readonly os?: string[] | undefined;
|
|
17
|
+
readonly _id?: string | undefined;
|
|
18
|
+
readonly [key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
/** Document listing a package information and all its versions. */
|
|
21
|
+
export interface NpmPackument {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly "dist-tags": {
|
|
24
|
+
latest: string;
|
|
25
|
+
} & Record<string, string>;
|
|
26
|
+
readonly versions: Record<string, NpmPackageVersion>;
|
|
27
|
+
readonly [key: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
export interface NpmPackageVersion {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly version: string;
|
|
32
|
+
readonly dependencies?: Record<string, string> | undefined;
|
|
33
|
+
readonly optionalDependencies?: Record<string, string> | undefined;
|
|
34
|
+
readonly devDependencies?: Record<string, string> | undefined;
|
|
35
|
+
readonly peerDependencies?: Record<string, string> | undefined;
|
|
36
|
+
readonly directories: {};
|
|
37
|
+
readonly dist: NpmPackageDist;
|
|
38
|
+
readonly _hasShrinkwrap: boolean;
|
|
39
|
+
readonly description?: string | undefined;
|
|
40
|
+
readonly main?: string | undefined;
|
|
41
|
+
readonly scripts?: Record<string, string> | undefined;
|
|
42
|
+
readonly repository?: {
|
|
43
|
+
type: string;
|
|
44
|
+
url: string;
|
|
45
|
+
directory?: string | undefined;
|
|
46
|
+
} | undefined;
|
|
47
|
+
readonly engines?: Record<string, string> | undefined;
|
|
48
|
+
readonly keywords?: string[] | undefined;
|
|
49
|
+
readonly author?: NpmHuman | undefined;
|
|
50
|
+
readonly contributors?: NpmHuman[] | undefined;
|
|
51
|
+
readonly maintainers?: NpmHuman[] | undefined;
|
|
52
|
+
readonly license?: string | undefined;
|
|
53
|
+
readonly homepage?: string | undefined;
|
|
54
|
+
readonly bugs?: {
|
|
55
|
+
url: string;
|
|
56
|
+
} | undefined;
|
|
57
|
+
readonly _id?: string | undefined;
|
|
58
|
+
readonly _nodeVersion?: string | undefined;
|
|
59
|
+
readonly _npmVersion?: string | undefined;
|
|
60
|
+
readonly _npmUser?: NpmHuman | undefined;
|
|
61
|
+
readonly [key: string]: unknown;
|
|
62
|
+
}
|
|
63
|
+
export interface NpmPackageDist {
|
|
64
|
+
readonly shasum: string;
|
|
65
|
+
readonly tarball: string;
|
|
66
|
+
readonly integrity?: string | undefined;
|
|
67
|
+
readonly fileCount?: number | undefined;
|
|
68
|
+
readonly unpackedSize?: number | undefined;
|
|
69
|
+
}
|
|
70
|
+
export interface NpmHuman {
|
|
71
|
+
readonly name: string;
|
|
72
|
+
readonly email?: string | undefined;
|
|
73
|
+
readonly url?: string | undefined;
|
|
74
|
+
}
|
|
75
|
+
export declare function fetchPackageManifest(packageName: string, version: string): Promise<NpmManifest>;
|
|
76
|
+
export declare function fetchLatestPackageManifest(packageName: string): Promise<NpmManifest>;
|
|
77
|
+
export declare function downloadPackageVersion(packageName: string, version: string, dest: string): Promise<ExtractedTarballResult>;
|
|
78
|
+
export declare function downloadAndExtractPackage(manifest: NpmManifest, dest: string, hashAlgorithm?: string): Promise<ExtractedTarballResult>;
|
|
79
|
+
export interface ExtractedTarballResult {
|
|
80
|
+
readonly dest: string;
|
|
81
|
+
readonly hash: Hash;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=npm-registry-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-registry-utils.d.ts","sourceRoot":"","sources":["../../../src/package-manger/npm-registry-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Helpers to access the npm registry api https://github.com/npm/registry/blob/main/docs/REGISTRY-API.md#package-endpoints
|
|
2
|
+
import { createHash } from "crypto";
|
|
3
|
+
import { Readable } from "stream";
|
|
4
|
+
import { extract as tarX } from "tar/extract";
|
|
5
|
+
const registry = `https://registry.npmjs.org`;
|
|
6
|
+
export async function fetchPackageManifest(packageName, version) {
|
|
7
|
+
const url = `${registry}/${packageName}/${version}`;
|
|
8
|
+
const res = await fetch(url);
|
|
9
|
+
return await res.json();
|
|
10
|
+
}
|
|
11
|
+
export function fetchLatestPackageManifest(packageName) {
|
|
12
|
+
return fetchPackageManifest(packageName, "latest");
|
|
13
|
+
}
|
|
14
|
+
export async function downloadPackageVersion(packageName, version, dest) {
|
|
15
|
+
const manifest = await fetchPackageManifest(packageName, version);
|
|
16
|
+
return downloadAndExtractTarball(manifest.dist.tarball, dest);
|
|
17
|
+
}
|
|
18
|
+
export async function downloadAndExtractPackage(manifest, dest, hashAlgorithm = "sha512") {
|
|
19
|
+
return downloadAndExtractTarball(manifest.dist.tarball, dest, hashAlgorithm);
|
|
20
|
+
}
|
|
21
|
+
async function downloadAndExtractTarball(url, dest, hashAlgorithm = "sha512") {
|
|
22
|
+
const res = await fetch(url);
|
|
23
|
+
const tarballStream = Readable.fromWeb(res.body);
|
|
24
|
+
const hash = tarballStream.pipe(createHash(hashAlgorithm));
|
|
25
|
+
const extractor = tarX({
|
|
26
|
+
strip: 1,
|
|
27
|
+
cwd: dest,
|
|
28
|
+
});
|
|
29
|
+
const p = new Promise((resolve, reject) => {
|
|
30
|
+
extractor.on("end", () => {
|
|
31
|
+
resolve();
|
|
32
|
+
});
|
|
33
|
+
extractor.on("error", (er) => {
|
|
34
|
+
reject(er);
|
|
35
|
+
});
|
|
36
|
+
tarballStream.on("error", (er) => reject(er));
|
|
37
|
+
});
|
|
38
|
+
tarballStream.pipe(extractor);
|
|
39
|
+
await p;
|
|
40
|
+
return { dest, hash: { algorithm: hashAlgorithm, value: hash.digest("hex") } };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=npm-registry-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-registry-utils.js","sourceRoot":"","sources":["../../../src/package-manger/npm-registry-utils.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAoF9C,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,WAAmB;IAC5D,OAAO,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,OAAe,EACf,IAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClE,OAAO,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAAqB,EACrB,IAAY,EACZ,gBAAwB,QAAQ;IAEhC,OAAO,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AAC/E,CAAC;AAMD,KAAK,UAAU,yBAAyB,CACtC,GAAW,EACX,IAAY,EACZ,gBAAwB,QAAQ;IAEhC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC;QACrB,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YAC3B,MAAM,CAAC,EAAE,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,MAAM,CAAC,CAAC;IAER,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACjF,CAAC"}
|
|
@@ -8,6 +8,8 @@ export interface PackageJson {
|
|
|
8
8
|
version?: string;
|
|
9
9
|
/** Package description */
|
|
10
10
|
description?: string;
|
|
11
|
+
packageManager?: string;
|
|
12
|
+
devEngines?: DevEngines;
|
|
11
13
|
type?: "module" | "commonjs";
|
|
12
14
|
main?: string;
|
|
13
15
|
tspMain?: string;
|
|
@@ -53,5 +55,17 @@ export type Exports = string | Array<string | ExportConditions> | ExportConditio
|
|
|
53
55
|
type ExportConditions = {
|
|
54
56
|
[condition: string]: Exports;
|
|
55
57
|
};
|
|
58
|
+
export interface DevEngines {
|
|
59
|
+
packageManager?: DevEngineDependency;
|
|
60
|
+
cpu?: DevEngineDependency;
|
|
61
|
+
os?: DevEngineDependency;
|
|
62
|
+
libc?: DevEngineDependency;
|
|
63
|
+
runtime?: DevEngineDependency;
|
|
64
|
+
}
|
|
65
|
+
export interface DevEngineDependency {
|
|
66
|
+
name: string;
|
|
67
|
+
version: string;
|
|
68
|
+
onFail?: "ignore" | "warn" | "error";
|
|
69
|
+
}
|
|
56
70
|
export {};
|
|
57
71
|
//# sourceMappingURL=package-json.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../src/types/package-json.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../src/types/package-json.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,KAAK,gBAAgB,GAAG;IACtB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;AAEnF;;GAEG;AACH,KAAK,gBAAgB,GAAG;IACtB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,EAAE,CAAC,EAAE,mBAAmB,CAAC;IACzB,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/fs-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAsB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBjG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { joinPaths } from "../core/path-utils.js";
|
|
2
|
+
export async function mkTempDir(host, base, prefix) {
|
|
3
|
+
const rnd = Math.random() * 0x100000000;
|
|
4
|
+
const hex = rnd.toString(16).padStart(8, `0`);
|
|
5
|
+
const path = joinPaths(base, ".temp", `${prefix}-${process.pid}-${hex}`);
|
|
6
|
+
try {
|
|
7
|
+
await host.mkdirp(path);
|
|
8
|
+
return path;
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (error.code === `EACCES`) {
|
|
12
|
+
throw new Error(`Cannot create temporary folder at ${path}. Permission denied. Please check your permissions.`);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=fs-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-utils.js","sourceRoot":"","sources":["../../../src/utils/fs-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAkB,EAAE,IAAY,EAAE,MAAc;IAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,qDAAqD,CAC/F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/compiler",
|
|
3
|
-
"version": "0.67.0-dev.
|
|
3
|
+
"version": "0.67.0-dev.11",
|
|
4
4
|
"description": "TypeSpec Compiler Preview",
|
|
5
5
|
"author": "Microsoft Corporation",
|
|
6
6
|
"license": "MIT",
|
|
@@ -72,15 +72,16 @@
|
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@babel/code-frame": "~7.26.2",
|
|
74
74
|
"@inquirer/prompts": "^7.3.1",
|
|
75
|
-
"@npmcli/arborist": "^8.0.0",
|
|
76
75
|
"ajv": "~8.17.1",
|
|
77
76
|
"change-case": "~5.4.4",
|
|
77
|
+
"env-paths": "^3.0.0",
|
|
78
78
|
"globby": "~14.1.0",
|
|
79
79
|
"is-unicode-supported": "^2.1.0",
|
|
80
80
|
"mustache": "~4.2.0",
|
|
81
81
|
"picocolors": "~1.1.1",
|
|
82
82
|
"prettier": "~3.5.3",
|
|
83
83
|
"semver": "^7.7.1",
|
|
84
|
+
"tar": "^7.4.3",
|
|
84
85
|
"temporal-polyfill": "^0.2.5",
|
|
85
86
|
"vscode-languageserver": "~9.0.1",
|
|
86
87
|
"vscode-languageserver-textdocument": "~1.0.12",
|
|
@@ -91,7 +92,6 @@
|
|
|
91
92
|
"@types/babel__code-frame": "~7.0.6",
|
|
92
93
|
"@types/mustache": "~4.2.5",
|
|
93
94
|
"@types/node": "~22.13.9",
|
|
94
|
-
"@types/npmcli__arborist": "^6.3.0",
|
|
95
95
|
"@types/semver": "^7.5.8",
|
|
96
96
|
"@types/yargs": "~17.0.33",
|
|
97
97
|
"@typespec/internal-build-utils": "^0.66.0 || >=0.67.0-dev <0.67.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/core/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWjD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,SAAS,GAAG,MAAkB,GACpC,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
package/dist/src/core/install.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import Arborist from "@npmcli/arborist";
|
|
2
|
-
import { spawn } from "child_process";
|
|
3
|
-
import { getTypeSpecEngine } from "./engine.js";
|
|
4
|
-
export async function installTypeSpecDependencies(host, directory, stdio = "inherit") {
|
|
5
|
-
// Only use the builtin npm when running in standalone tsp mode.
|
|
6
|
-
// TBD how we'll change this as we move to a more integrated setup and resolve the user package manager.
|
|
7
|
-
if (getTypeSpecEngine() === "tsp") {
|
|
8
|
-
await installWithBuiltinNpm(host, directory);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
await installWithNpmExe(host, directory, stdio);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
async function installWithBuiltinNpm(host, directory) {
|
|
15
|
-
const arb = new Arborist({
|
|
16
|
-
path: directory,
|
|
17
|
-
});
|
|
18
|
-
await arb.loadActual();
|
|
19
|
-
await arb.buildIdealTree({});
|
|
20
|
-
await arb.reify();
|
|
21
|
-
}
|
|
22
|
-
async function installWithNpmExe(host, directory, stdio) {
|
|
23
|
-
const child = spawn("npm", ["install"], {
|
|
24
|
-
shell: process.platform === "win32",
|
|
25
|
-
stdio: "pipe",
|
|
26
|
-
cwd: directory,
|
|
27
|
-
env: process.env,
|
|
28
|
-
});
|
|
29
|
-
const stdout = [];
|
|
30
|
-
if (child.stdout) {
|
|
31
|
-
child.stdout.on("data", (data) => {
|
|
32
|
-
stdout.push(data.toString());
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
if (child.stderr) {
|
|
36
|
-
child.stderr.on("data", (data) => {
|
|
37
|
-
stdout.push(data.toString());
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return new Promise((resolve, reject) => {
|
|
41
|
-
child.on("error", (error) => {
|
|
42
|
-
if (error.code === "ENOENT") {
|
|
43
|
-
host.logger.error("Cannot find `npm` executable. Make sure to have npm installed in your path.");
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
host.logger.error(error.toString());
|
|
47
|
-
}
|
|
48
|
-
process.exit(error.errno);
|
|
49
|
-
});
|
|
50
|
-
child.on("exit", (exitCode) => {
|
|
51
|
-
if (exitCode !== 0) {
|
|
52
|
-
reject(new Error(`Npm installed failed with exit code ${exitCode}\n${stdout.join("\n")}`));
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
resolve();
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=install.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/core/install.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUhD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAqB,EACrB,SAAiB,EACjB,QAA4B,SAAS;IAErC,gEAAgE;IAChE,wGAAwG;IACxG,IAAI,iBAAiB,EAAE,KAAK,KAAK,EAAE,CAAC;QAClC,MAAM,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAqB,EAAE,SAAiB;IAC3E,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;QACvB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;IACvB,MAAM,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAqB,EACrB,SAAiB,EACjB,KAAyB;IAEzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;QACtC,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;QACnC,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6EAA6E,CAC9E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC5B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|