@typespec/internal-build-utils 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/cmd/cli.js +2 -0
  2. package/dist/src/cli.d.ts +2 -0
  3. package/dist/src/cli.d.ts.map +1 -0
  4. package/dist/src/cli.js +21 -0
  5. package/dist/src/cli.js.map +1 -0
  6. package/dist/src/common.d.ts +37 -0
  7. package/dist/src/common.d.ts.map +1 -0
  8. package/dist/src/common.js +75 -0
  9. package/dist/src/common.js.map +1 -0
  10. package/dist/src/constants.d.ts +11 -0
  11. package/dist/src/constants.d.ts.map +1 -0
  12. package/dist/src/constants.js +11 -0
  13. package/dist/src/constants.js.map +1 -0
  14. package/dist/src/dotnet.d.ts +13 -0
  15. package/dist/src/dotnet.d.ts.map +1 -0
  16. package/dist/src/dotnet.js +81 -0
  17. package/dist/src/dotnet.js.map +1 -0
  18. package/dist/src/generate-third-party-notice.d.ts +2 -0
  19. package/dist/src/generate-third-party-notice.d.ts.map +1 -0
  20. package/dist/src/generate-third-party-notice.js +121 -0
  21. package/dist/src/generate-third-party-notice.js.map +1 -0
  22. package/dist/src/index.d.ts +5 -0
  23. package/dist/src/index.d.ts.map +1 -0
  24. package/dist/src/index.js +5 -0
  25. package/dist/src/index.js.map +1 -0
  26. package/dist/src/prerelease.d.ts +2 -0
  27. package/dist/src/prerelease.d.ts.map +1 -0
  28. package/dist/src/prerelease.js +132 -0
  29. package/dist/src/prerelease.js.map +1 -0
  30. package/dist/src/visualstudio.d.ts +6 -0
  31. package/dist/src/visualstudio.d.ts.map +1 -0
  32. package/dist/src/visualstudio.js +28 -0
  33. package/dist/src/visualstudio.js.map +1 -0
  34. package/dist/src/watch.d.ts +2 -0
  35. package/dist/src/watch.d.ts.map +1 -0
  36. package/dist/src/watch.js +50 -0
  37. package/dist/src/watch.js.map +1 -0
  38. package/package.json +60 -0
package/cmd/cli.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import "../dist/src/cli.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import yargs from "yargs";
2
+ import { generateThirdPartyNotice } from "./generate-third-party-notice.js";
3
+ import { bumpVersionsForPrerelease } from "./prerelease.js";
4
+ main().catch((e) => {
5
+ // eslint-disable-next-line no-console
6
+ console.error(e);
7
+ process.exit(1);
8
+ });
9
+ async function main() {
10
+ await yargs(process.argv.slice(2))
11
+ .scriptName("typespec-build-tool")
12
+ .help()
13
+ .strict()
14
+ .command("generate-third-party-notices", "Generate the third party notice", () => { }, () => generateThirdPartyNotice())
15
+ .command("bump-version-preview <workspaceRoots...>", "Bump all package version for the preview", (cmd) => cmd.positional("workspaceRoots", {
16
+ type: "string",
17
+ array: true,
18
+ demandOption: true,
19
+ }), (args) => bumpVersionsForPrerelease(args.workspaceRoots)).argv;
20
+ }
21
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACjB,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/B,UAAU,CAAC,qBAAqB,CAAC;SACjC,IAAI,EAAE;SACN,MAAM,EAAE;SACR,OAAO,CACN,8BAA8B,EAC9B,iCAAiC,EACjC,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,CAAC,wBAAwB,EAAE,CACjC;SACA,OAAO,CACN,0CAA0C,EAC1C,0CAA0C,EAC1C,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE;QAC/B,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;KACnB,CAAC,EACJ,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CACzD,CAAC,IAAI,CAAC;AACX,CAAC"}
@@ -0,0 +1,37 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { ChildProcess, SpawnOptions } from "child_process";
3
+ export declare class CommandFailedError extends Error {
4
+ proc: ChildProcess;
5
+ constructor(msg: string, proc: ChildProcess);
6
+ }
7
+ /**
8
+ * Return the correct executable name if on unix or windows(with .cmd extension)
9
+ * @param cmd to run
10
+ * @returns
11
+ */
12
+ export declare function xplatCmd(cmd: string): string;
13
+ export interface RunOptions extends SpawnOptions {
14
+ silent?: boolean;
15
+ encoding?: string;
16
+ ignoreCommandNotFound?: boolean;
17
+ throwOnNonZeroExit?: boolean;
18
+ }
19
+ export declare function run(command: string, args: string[], options?: RunOptions): Promise<{
20
+ exitCode: number;
21
+ stdout: string;
22
+ stderr: string;
23
+ proc: ChildProcess;
24
+ } | {
25
+ exitCode: number;
26
+ stdout: string;
27
+ stderr: string;
28
+ }>;
29
+ export declare function execAsync(command: string, args: string[], options: SpawnOptions): Promise<{
30
+ exitCode: number;
31
+ stdout: string;
32
+ stderr: string;
33
+ proc: ChildProcess;
34
+ }>;
35
+ export declare function clearScreen(): void;
36
+ export declare function logWithTime(msg: string): void;
37
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AAElE,qBAAa,kBAAmB,SAAQ,KAAK;IACX,IAAI,EAAE,YAAY;gBAAtC,GAAG,EAAE,MAAM,EAAS,IAAI,EAAE,YAAY;CAGnD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAEnC;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU;;;;;;;;;GAgC9E;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAqBnF;AAED,wBAAgB,WAAW,SAE1B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,QAItC"}
@@ -0,0 +1,75 @@
1
+ import { spawn } from "child_process";
2
+ export class CommandFailedError extends Error {
3
+ constructor(msg, proc) {
4
+ super(msg);
5
+ this.proc = proc;
6
+ }
7
+ }
8
+ /**
9
+ * Return the correct executable name if on unix or windows(with .cmd extension)
10
+ * @param cmd to run
11
+ * @returns
12
+ */
13
+ export function xplatCmd(cmd) {
14
+ return process.platform === "win32" ? `${cmd}.cmd` : cmd;
15
+ }
16
+ export async function run(command, args, options) {
17
+ if (!(options === null || options === void 0 ? void 0 : options.silent)) {
18
+ // eslint-disable-next-line no-console
19
+ console.log();
20
+ // eslint-disable-next-line no-console
21
+ console.log(`> ${command} ${args.join(" ")}`);
22
+ }
23
+ options = {
24
+ stdio: "inherit",
25
+ throwOnNonZeroExit: true,
26
+ ...options,
27
+ };
28
+ try {
29
+ const result = await execAsync(command, args, options);
30
+ if (options.throwOnNonZeroExit && result.exitCode !== undefined && result.exitCode !== 0) {
31
+ throw new CommandFailedError(`Command \`${command} ${args.join(" ")}\` failed with exit code ${result.exitCode}`, result.proc);
32
+ }
33
+ return result;
34
+ }
35
+ catch (e) {
36
+ if (options.ignoreCommandNotFound && e.code === "ENOENT") {
37
+ // eslint-disable-next-line no-console
38
+ console.log(`Skipped: Command \`${command}\` not found.`);
39
+ return { exitCode: 0, stdout: "", stderr: "" };
40
+ }
41
+ else {
42
+ throw e;
43
+ }
44
+ }
45
+ }
46
+ export async function execAsync(command, args, options) {
47
+ const child = spawn(command, args, options);
48
+ return new Promise((resolve, reject) => {
49
+ var _a, _b;
50
+ child.on("error", (error) => {
51
+ reject(error);
52
+ });
53
+ const stdout = [];
54
+ const stderr = [];
55
+ (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.on("data", (data) => stdout.push(data));
56
+ (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.on("data", (data) => stderr.push(data));
57
+ child.on("exit", (exitCode) => {
58
+ resolve({
59
+ exitCode: exitCode !== null && exitCode !== void 0 ? exitCode : -1,
60
+ stdout: Buffer.concat(stdout).toString(),
61
+ stderr: Buffer.concat(stderr).toString(),
62
+ proc: child,
63
+ });
64
+ });
65
+ });
66
+ }
67
+ export function clearScreen() {
68
+ process.stdout.write("\x1bc");
69
+ }
70
+ export function logWithTime(msg) {
71
+ const time = new Date().toLocaleTimeString();
72
+ // eslint-disable-next-line no-console
73
+ console.log(`[${time}] ${msg}`);
74
+ }
75
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const vsMinimumVersion = "16.9";
2
+ export declare const MinimumDotnetVersion: {
3
+ major: number;
4
+ minor: number;
5
+ };
6
+ /**
7
+ * When publishing the preview version name of the suffix
8
+ * @example 1.2.0-dev.3
9
+ */
10
+ export declare const PRERELEASE_TYPE = "dev";
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const vsMinimumVersion = "16.9";
2
+ export const MinimumDotnetVersion = {
3
+ major: 6,
4
+ minor: 0,
5
+ };
6
+ /**
7
+ * When publishing the preview version name of the suffix
8
+ * @example 1.2.0-dev.3
9
+ */
10
+ export const PRERELEASE_TYPE = "dev";
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { RunOptions } from "./common.js";
2
+ export declare function runDotnet(args: string[], options?: Omit<RunOptions, "stdio" | "throwOnNonZeroExit">): Promise<void>;
3
+ export declare function validateDotnetVersion(): Promise<{
4
+ error?: string;
5
+ }>;
6
+ export declare function ensureDotnetVersion(options?: {
7
+ exitWithSuccessInDevBuilds?: boolean;
8
+ }): Promise<void>;
9
+ /**
10
+ * Runs the dotnet formatter.
11
+ */
12
+ export declare function runDotnetFormat(...args: string[]): Promise<void>;
13
+ //# sourceMappingURL=dotnet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnet.d.ts","sourceRoot":"","sources":["../../src/dotnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,oBAAoB,CAAM,iBAiB/D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BzE;AAGD,wBAAsB,mBAAmB,CAAC,OAAO,GAAE;IAAE,0BAA0B,CAAC,EAAE,OAAO,CAAA;CAAO,iBAoB/F;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,iBAUtD"}
@@ -0,0 +1,81 @@
1
+ import { execAsync, run } from "./common.js";
2
+ import { MinimumDotnetVersion } from "./constants.js";
3
+ export async function runDotnet(args, options = {}) {
4
+ await ensureDotnetVersion();
5
+ const result = await run("dotnet", args, {
6
+ ...options,
7
+ throwOnNonZeroExit: false,
8
+ stdio: [null, "pipe", "inherit"],
9
+ });
10
+ if (result.exitCode !== 0) {
11
+ // rush wants errors on stderr to show them to user without --verbose.
12
+ // eslint-disable-next-line no-console
13
+ console.error(result.stdout);
14
+ process.exit(result.exitCode);
15
+ }
16
+ // eslint-disable-next-line no-console
17
+ console.log(result.stdout);
18
+ }
19
+ export async function validateDotnetVersion() {
20
+ try {
21
+ const result = await execAsync("dotnet", ["--version"], {
22
+ stdio: [null, "pipe", "inherit"],
23
+ });
24
+ if (result.exitCode !== 0 || !result.stdout) {
25
+ return { error: `dotnet not found.` };
26
+ }
27
+ const version = result.stdout.toString().trim();
28
+ const [major, minor, _patch] = version.split(".").map((x) => parseInt(x, 10));
29
+ if (major < MinimumDotnetVersion.major ||
30
+ (major === MinimumDotnetVersion.major && minor < MinimumDotnetVersion.minor)) {
31
+ return {
32
+ error: `dotnet version ${version} does not meet minimum requirement ${MinimumDotnetVersion.major}.${MinimumDotnetVersion.minor}.x`,
33
+ };
34
+ }
35
+ return {};
36
+ }
37
+ catch (e) {
38
+ if (e.code === "ENOENT") {
39
+ return { error: "dotnet not found." };
40
+ }
41
+ else {
42
+ throw e;
43
+ }
44
+ }
45
+ }
46
+ let validatedDotnet = false;
47
+ export async function ensureDotnetVersion(options = {}) {
48
+ if (validatedDotnet) {
49
+ return;
50
+ }
51
+ const { error } = await validateDotnetVersion();
52
+ if (error) {
53
+ // If running in CI/AzureDevOps fail if dotnet is invalid.
54
+ if (process.env.CI || process.env.TF_BUILD || !options.exitWithSuccessInDevBuilds) {
55
+ // eslint-disable-next-line no-console
56
+ console.error(`error: ${error}`);
57
+ process.exit(1);
58
+ }
59
+ else {
60
+ // eslint-disable-next-line no-console
61
+ console.log(`Skipping build step: ${error}`);
62
+ process.exit(0);
63
+ }
64
+ }
65
+ validatedDotnet = true;
66
+ }
67
+ /**
68
+ * Runs the dotnet formatter.
69
+ */
70
+ export async function runDotnetFormat(...args) {
71
+ return runDotnet([
72
+ "format",
73
+ "whitespace",
74
+ ".",
75
+ `--exclude`,
76
+ "**/node_modules/**/*",
77
+ "--folder",
78
+ ...args,
79
+ ]);
80
+ }
81
+ //# sourceMappingURL=dotnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnet.js","sourceRoot":"","sources":["../../src/dotnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAc,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAc,EACd,UAA4D,EAAE;IAE9D,MAAM,mBAAmB,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,GAAG,OAAO;QACV,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE;QACzB,sEAAsE;QACtE,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC/B;IACD,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;YACtD,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC3C,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;SACvC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9E,IACE,KAAK,GAAG,oBAAoB,CAAC,KAAK;YAClC,CAAC,KAAK,KAAK,oBAAoB,CAAC,KAAK,IAAI,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,EAC5E;YACA,OAAO;gBACL,KAAK,EAAE,kBAAkB,OAAO,sCAAsC,oBAAoB,CAAC,KAAK,IAAI,oBAAoB,CAAC,KAAK,IAAI;aACnI,CAAC;SACH;QACD,OAAO,EAAE,CAAC;KACX;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YACvB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;SACvC;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAoD,EAAE;IAC9F,IAAI,eAAe,EAAE;QACnB,OAAO;KACR;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAChD,IAAI,KAAK,EAAE;QACT,0DAA0D;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE;YACjF,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;aAAM;YACL,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IAED,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAG,IAAc;IACrD,OAAO,SAAS,CAAC;QACf,QAAQ;QACR,YAAY;QACZ,GAAG;QACH,WAAW;QACX,sBAAsB;QACtB,UAAU;QACV,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateThirdPartyNotice(): Promise<void>;
2
+ //# sourceMappingURL=generate-third-party-notice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-third-party-notice.d.ts","sourceRoot":"","sources":["../../src/generate-third-party-notice.ts"],"names":[],"mappings":"AAKA,wBAAsB,wBAAwB,kBAqC7C"}
@@ -0,0 +1,121 @@
1
+ import { readdir, readFile, stat, writeFile } from "fs/promises";
2
+ import { basename, dirname, join, resolve } from "path";
3
+ const skipDirs = new Set(["node_modules", "dist-dev"]);
4
+ export async function generateThirdPartyNotice() {
5
+ const root = resolve("./");
6
+ const rootName = basename(root);
7
+ const packages = await findThirdPartyPackages();
8
+ const packageRoots = [...packages.keys()].sort((a, b) => packages.get(a).name.localeCompare(packages.get(b).name));
9
+ let text = `${rootName}
10
+
11
+ THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
12
+ Do Not Translate or Localize
13
+
14
+ This project incorporates components from the projects listed below. The
15
+ original copyright notices and the licenses under which Microsoft received such
16
+ components are set forth below. Microsoft reserves all rights not expressly
17
+ granted herein, whether by implication, estoppel or otherwise.
18
+ `;
19
+ let i = 1;
20
+ for (const packageRoot of packageRoots) {
21
+ const pkg = packages.get(packageRoot);
22
+ const url = getUrl(pkg);
23
+ text += `\n${i++}. ${pkg.name} version ${pkg.version} (${url})`;
24
+ }
25
+ for (const packageRoot of packageRoots) {
26
+ const pkg = packages.get(packageRoot);
27
+ const license = await getLicense(packageRoot);
28
+ text += `\n\n
29
+ %% ${pkg.name} NOTICES AND INFORMATION BEGIN HERE
30
+ =====================================================
31
+ ${license}
32
+ =====================================================");
33
+ END OF ${pkg.name} NOTICES AND INFORMATION`;
34
+ }
35
+ await writeFile("ThirdPartyNotices.txt", text);
36
+ }
37
+ async function findThirdPartyPackages() {
38
+ const root = resolve("./");
39
+ const rootName = basename(root);
40
+ const packages = new Map();
41
+ for await (const map of projectSourcemaps(root)) {
42
+ const contents = JSON.parse(await readFile(map, "utf-8"));
43
+ const sources = contents.sources;
44
+ for (const source of sources) {
45
+ const sourcePath = join(dirname(map), source);
46
+ const packageRoot = await getPackageRoot(sourcePath);
47
+ const pkg = JSON.parse(await readFile(join(packageRoot, "package.json"), "utf-8"));
48
+ if (pkg.name === rootName || /microsoft/i.test(JSON.stringify(pkg.author))) {
49
+ continue;
50
+ }
51
+ if (!packages.has(packageRoot)) {
52
+ packages.set(packageRoot, pkg);
53
+ }
54
+ }
55
+ }
56
+ return packages;
57
+ }
58
+ async function* projectSourcemaps(rootPath) {
59
+ const files = await readdir(rootPath, { withFileTypes: true });
60
+ for (const file of files) {
61
+ const filepath = join(rootPath, file.name);
62
+ if (file.isDirectory()) {
63
+ if (skipDirs.has(file.name)) {
64
+ continue;
65
+ }
66
+ yield* projectSourcemaps(filepath);
67
+ }
68
+ else {
69
+ if (file.name.endsWith(".js.map")) {
70
+ yield filepath;
71
+ }
72
+ }
73
+ }
74
+ }
75
+ async function getPackageRoot(filename) {
76
+ const dir = dirname(filename);
77
+ try {
78
+ const pkgPath = join(dir, "package.json");
79
+ await stat(pkgPath);
80
+ return dir;
81
+ }
82
+ catch (e) {
83
+ if (e.code === "ENOENT") {
84
+ return getPackageRoot(dir);
85
+ }
86
+ throw e;
87
+ }
88
+ }
89
+ function getUrl(pkg) {
90
+ var _a;
91
+ let url = pkg.repository;
92
+ if (typeof url !== "string") {
93
+ url = (_a = pkg.repository) === null || _a === void 0 ? void 0 : _a.url;
94
+ }
95
+ if (!url) {
96
+ throw new Error(`Cannot find URL for ${pkg}`);
97
+ }
98
+ url = url.replace(/^git\+/, "");
99
+ url = url.replace(/\.git$/, "");
100
+ url = url.replace(/^git:\/\//, "https://");
101
+ return url;
102
+ }
103
+ async function getLicense(packageRoot) {
104
+ for (const licenseName of ["LICENSE", "LICENSE.txt", "LICENSE.md", "LICENSE-MIT"]) {
105
+ const licensePath = join(packageRoot, licenseName);
106
+ try {
107
+ let text = await readFile(licensePath, "utf-8");
108
+ text = text.replace("&lt;", "<");
109
+ text = text.replace("&gt;", ">");
110
+ return text;
111
+ }
112
+ catch (err) {
113
+ if (err.code === "ENOENT") {
114
+ continue;
115
+ }
116
+ throw err;
117
+ }
118
+ }
119
+ throw new Error(`Cannot get license for ${packageRoot}, license file not found.`);
120
+ }
121
+ //# sourceMappingURL=generate-third-party-notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-third-party-notice.js","sourceRoot":"","sources":["../../src/generate-third-party-notice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./common.js";
2
+ export * from "./dotnet.js";
3
+ export * from "./visualstudio.js";
4
+ export * from "./watch.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./common.js";
2
+ export * from "./dotnet.js";
3
+ export * from "./visualstudio.js";
4
+ export * from "./watch.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function bumpVersionsForPrerelease(workspaceRoots: string[]): Promise<void>;
2
+ //# sourceMappingURL=prerelease.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerelease.d.ts","sourceRoot":"","sources":["../../src/prerelease.ts"],"names":[],"mappings":"AAkJA,wBAAsB,yBAAyB,CAAC,cAAc,EAAE,MAAM,EAAE,iBAcvE"}
@@ -0,0 +1,132 @@
1
+ /* eslint-disable no-console */
2
+ import { lstat, readdir, readFile, writeFile } from "fs/promises";
3
+ import { join } from "path";
4
+ import stripJsonComments from "strip-json-comments";
5
+ async function getAllChanges(workspaceRoot) {
6
+ const changeDir = join(workspaceRoot, "common", "changes");
7
+ const files = await findAllFiles(changeDir);
8
+ return await Promise.all(files.map((x) => readJsonFile(x)));
9
+ }
10
+ /**
11
+ * @returns map of package to number of changes.
12
+ */
13
+ async function getChangeCountPerPackage(workspaceRoot) {
14
+ const changes = await getAllChanges(workspaceRoot);
15
+ console.log("Changes", changes);
16
+ const changeCounts = {};
17
+ for (const change of changes) {
18
+ if (!(change.packageName in changeCounts)) {
19
+ // Count all changes that are not "none"
20
+ changeCounts[change.packageName] = 0;
21
+ }
22
+ changeCounts[change.packageName] += change.changes.length;
23
+ }
24
+ return changeCounts;
25
+ }
26
+ async function getPackages(workspaceRoot) {
27
+ const rushJson = await readJsonFile(join(workspaceRoot, "rush.json"));
28
+ const paths = {};
29
+ for (const project of rushJson.projects) {
30
+ const packagePath = join(workspaceRoot, project.projectFolder);
31
+ const pkg = await readJsonFile(join(packagePath, "package.json"));
32
+ paths[project.packageName] = {
33
+ path: packagePath,
34
+ version: pkg.version,
35
+ };
36
+ }
37
+ return paths;
38
+ }
39
+ /**
40
+ * Update the package dependencies to match the newly updated version.
41
+ * @param {*} packageManifest
42
+ * @param {*} updatedPackages
43
+ */
44
+ function updateDependencyVersions(packageManifest, updatedPackages) {
45
+ const clone = {
46
+ ...packageManifest,
47
+ };
48
+ for (const depType of ["dependencies", "devDependencies", "peerDependencies"]) {
49
+ const dependencies = {};
50
+ const currentDeps = packageManifest[depType];
51
+ if (currentDeps) {
52
+ for (const [name, currentVersion] of Object.entries(currentDeps)) {
53
+ const updatedPackage = updatedPackages[name];
54
+ if (updatedPackage) {
55
+ // Loose dependency accept anything above the last release. This make sure that preview release of only one package need to be bumped without needing all the other as well.
56
+ dependencies[name] = `>=${updatedPackage.oldVersion}`;
57
+ // change to this line to have strict dependency for preview versions
58
+ // dependencies[name] = `~${updatedPackage.newVersion}`;
59
+ }
60
+ else {
61
+ dependencies[name] = currentVersion;
62
+ }
63
+ }
64
+ }
65
+ clone[depType] = dependencies;
66
+ }
67
+ return clone;
68
+ }
69
+ function bumpVersion(version, changeCount) {
70
+ if (changeCount === 0) {
71
+ return version;
72
+ }
73
+ const [major, minor] = version.split(".").map((x) => parseInt(x, 10));
74
+ console.log(`Bumping version ${version} to ${major}.${minor + 1}.0-dev.${changeCount}`);
75
+ return `${major}.${minor + 1}.0-dev.${changeCount}`;
76
+ }
77
+ async function addPrereleaseNumber(changeCounts, packages) {
78
+ var _a;
79
+ const updatedManifests = {};
80
+ for (const [packageName, packageInfo] of Object.entries(packages)) {
81
+ const changeCount = (_a = changeCounts[packageName]) !== null && _a !== void 0 ? _a : 0;
82
+ const packageJsonPath = join(packageInfo.path, "package.json");
83
+ const packageJsonContent = await readJsonFile(packageJsonPath);
84
+ const newVersion = bumpVersion(packageInfo.version, changeCount);
85
+ console.log(`Setting version for ${packageName} to '${newVersion}'`);
86
+ updatedManifests[packageName] = {
87
+ packageJsonPath,
88
+ oldVersion: packageJsonContent.version,
89
+ newVersion: newVersion,
90
+ manifest: {
91
+ ...packageJsonContent,
92
+ version: newVersion,
93
+ },
94
+ };
95
+ }
96
+ for (const { packageJsonPath, manifest } of Object.values(updatedManifests)) {
97
+ const newManifest = updateDependencyVersions(manifest, updatedManifests);
98
+ await writeFile(packageJsonPath, JSON.stringify(newManifest, null, 2));
99
+ }
100
+ }
101
+ export async function bumpVersionsForPrerelease(workspaceRoots) {
102
+ let changeCounts = {};
103
+ let packages = {};
104
+ for (const workspaceRoot of workspaceRoots) {
105
+ changeCounts = { ...changeCounts, ...(await getChangeCountPerPackage(workspaceRoot)) };
106
+ packages = { ...packages, ...(await getPackages(workspaceRoot)) };
107
+ }
108
+ console.log("Change counts: ", changeCounts);
109
+ console.log("Packages", packages);
110
+ // Bumping with rush publish so rush computes from the changes what will be the next non prerelease version.
111
+ console.log("Adding prerelease number");
112
+ await addPrereleaseNumber(changeCounts, packages);
113
+ }
114
+ async function findAllFiles(dir) {
115
+ const files = [];
116
+ for (const file of await readdir(dir)) {
117
+ const path = join(dir, file);
118
+ const stat = await lstat(path);
119
+ if (stat.isDirectory()) {
120
+ files.push(...(await findAllFiles(path)));
121
+ }
122
+ else {
123
+ files.push(path);
124
+ }
125
+ }
126
+ return files;
127
+ }
128
+ async function readJsonFile(filename) {
129
+ const content = await readFile(filename);
130
+ return JSON.parse(stripJsonComments(content.toString()));
131
+ }
132
+ //# sourceMappingURL=prerelease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerelease.js","sourceRoot":"","sources":["../../src/prerelease.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function getVisualStudioMsBuildPath(): Promise<{
2
+ path: string;
3
+ } | {
4
+ error: string;
5
+ }>;
6
+ //# sourceMappingURL=visualstudio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualstudio.d.ts","sourceRoot":"","sources":["../../src/visualstudio.ts"],"names":[],"mappings":"AAaA,wBAAsB,0BAA0B,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBhG"}
@@ -0,0 +1,28 @@
1
+ import { join } from "path";
2
+ import { run } from "./common.js";
3
+ import { vsMinimumVersion } from "./constants.js";
4
+ const vswhereArgs = [
5
+ "-latest",
6
+ "-prerelease",
7
+ "-version",
8
+ `[${vsMinimumVersion},`,
9
+ "-property",
10
+ "installationPath",
11
+ ];
12
+ export async function getVisualStudioMsBuildPath() {
13
+ if (process.platform !== "win32") {
14
+ return { error: "Not on windows." };
15
+ }
16
+ const vswhere = join(process.env["ProgramFiles(x86)"], "Microsoft Visual Studio/Installer/vswhere.exe");
17
+ const result = await run(vswhere, vswhereArgs, {
18
+ ignoreCommandNotFound: true,
19
+ throwOnNonZeroExit: false,
20
+ encoding: "utf-8",
21
+ stdio: [null, "pipe", "inherit"],
22
+ });
23
+ if (!result || result.exitCode !== 0 || !result.stdout) {
24
+ return { error: `Visual Studio ${vsMinimumVersion} or later not found` };
25
+ }
26
+ return { path: join(result.stdout.trim(), "MSBuild/Current/Bin/MSBuild.exe") };
27
+ }
28
+ //# sourceMappingURL=visualstudio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualstudio.js","sourceRoot":"","sources":["../../src/visualstudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,GAAG;IAClB,SAAS;IACT,aAAa;IACb,UAAU;IACV,IAAI,gBAAgB,GAAG;IACvB,WAAW;IACX,kBAAkB;CACnB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;KACrC;IAED,MAAM,OAAO,GAAG,IAAI,CAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAE,EACjC,+CAA+C,CAChD,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE;QAC7C,qBAAqB,EAAE,IAAI;QAC3B,kBAAkB,EAAE,KAAK;QACzB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QACtD,OAAO,EAAE,KAAK,EAAE,iBAAiB,gBAAgB,qBAAqB,EAAE,CAAC;KAC1E;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,iCAAiC,CAAC,EAAE,CAAC;AACjF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runWatch(pattern: string, build: any, options?: any): void;
2
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,QAmDlE"}
@@ -0,0 +1,50 @@
1
+ import chokidar from "chokidar";
2
+ import { resolve } from "path";
3
+ import { clearScreen, logWithTime } from "./common.js";
4
+ export function runWatch(pattern, build, options) {
5
+ let lastBuildTime;
6
+ pattern = resolve(pattern);
7
+ start();
8
+ function start() {
9
+ // build once up-front
10
+ runBuild();
11
+ const watcher = chokidar.watch(pattern, { interval: 0.2, ...options });
12
+ // then build again on any change
13
+ watcher.on("add", (file) => runBuild(`${file} created`));
14
+ watcher.on("removed", (file) => runBuild(`${file} removed`));
15
+ watcher.on("change", (file, stats) => runBuild(`${file} changed`, stats === null || stats === void 0 ? void 0 : stats.mtime));
16
+ }
17
+ function runBuild(changeDescription, changeTime) {
18
+ runBuildAsync(changeDescription, changeTime).catch((err) => {
19
+ // eslint-disable-next-line no-console
20
+ console.error(err.stack);
21
+ process.exit(1);
22
+ });
23
+ }
24
+ async function runBuildAsync(changeDescription, changeTime) {
25
+ if (changeTime && lastBuildTime && changeTime < lastBuildTime) {
26
+ // Don't rebuild if a change happened before the last build kicked off.
27
+ // Defends against duplicate events and building more than once when a
28
+ // bunch of files are changed at the same time.
29
+ return;
30
+ }
31
+ lastBuildTime = new Date();
32
+ if (changeDescription) {
33
+ clearScreen();
34
+ logWithTime(`File change detected: ${changeDescription}. Running build.`);
35
+ }
36
+ else {
37
+ logWithTime("Starting build in watch mode.");
38
+ }
39
+ try {
40
+ await build();
41
+ logWithTime("Build succeeded. Waiting for file changes.");
42
+ }
43
+ catch (err) {
44
+ // eslint-disable-next-line no-console
45
+ console.error(err.stack);
46
+ logWithTime(`Build failed. Waiting for file changes.`);
47
+ }
48
+ }
49
+ }
50
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAU,EAAE,OAAa;IACjE,IAAI,aAAmB,CAAC;IACxB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B,KAAK,EAAE,CAAC;IAER,SAAS,KAAK;QACZ,sBAAsB;QACtB,QAAQ,EAAE,CAAC;QAEX,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAEvE,iCAAiC;QACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,UAAU,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,SAAS,QAAQ,CAAC,iBAA0B,EAAE,UAAiB;QAC7D,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACzD,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,iBAA0B,EAAE,UAAiB;QACxE,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,GAAG,aAAa,EAAE;YAC7D,uEAAuE;YACvE,sEAAsE;YACtE,+CAA+C;YAC/C,OAAO;SACR;QAED,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,iBAAiB,EAAE;YACrB,WAAW,EAAE,CAAC;YACd,WAAW,CAAC,yBAAyB,iBAAiB,kBAAkB,CAAC,CAAC;SAC3E;aAAM;YACL,WAAW,CAAC,+BAA+B,CAAC,CAAC;SAC9C;QAED,IAAI;YACF,MAAM,KAAK,EAAE,CAAC;YACd,WAAW,CAAC,4CAA4C,CAAC,CAAC;SAC3D;QAAC,OAAO,GAAQ,EAAE;YACjB,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzB,WAAW,CAAC,yCAAyC,CAAC,CAAC;SACxD;IACH,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@typespec/internal-build-utils",
3
+ "version": "0.4.0",
4
+ "author": "Microsoft Corporation",
5
+ "description": "Internal library to TypeSpec providing helpers to build.",
6
+ "homepage": "https://microsoft.github.io/typespec",
7
+ "readme": "https://github.com/Azure/typespec/blob/master/README.md",
8
+ "license": "MIT",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/Azure/typespec.git"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/Azure/typespec/issues"
15
+ },
16
+ "keywords": [
17
+ "typespec"
18
+ ],
19
+ "type": "module",
20
+ "main": "dist/src/index.js",
21
+ "bin": {
22
+ "typespec-build-tool": "cmd/cli.js"
23
+ },
24
+ "engines": {
25
+ "node": ">=16.0.0"
26
+ },
27
+ "files": [
28
+ "lib/*.tsp",
29
+ "dist/**",
30
+ "!dist/test/**"
31
+ ],
32
+ "dependencies": {
33
+ "yargs": "~17.6.2",
34
+ "strip-json-comments": "~4.0.0",
35
+ "cspell": "~6.14.3"
36
+ },
37
+ "devDependencies": {
38
+ "@types/mocha": "~10.0.0",
39
+ "@types/node": "~18.11.9",
40
+ "@types/yargs": "~17.0.2",
41
+ "@typespec/eslint-config-typespec": "~0.6.0",
42
+ "eslint": "^8.12.0",
43
+ "mocha": "~10.1.0",
44
+ "mocha-junit-reporter": "~2.2.0",
45
+ "mocha-multi-reporters": "~1.5.1",
46
+ "c8": "~7.12.0",
47
+ "rimraf": "~3.0.2",
48
+ "typescript": "~4.9.3",
49
+ "chokidar": "~3.5.3"
50
+ },
51
+ "scripts": {
52
+ "clean": "rimraf ./dist ./temp",
53
+ "build": "tsc -p .",
54
+ "watch": "tsc -p . --watch",
55
+ "test": "mocha",
56
+ "test-official": "c8 mocha --forbid-only --reporter mocha-multi-reporters",
57
+ "lint": "eslint . --ext .ts --max-warnings=0",
58
+ "lint:fix": "eslint . --fix --ext .ts"
59
+ }
60
+ }