@typespec/compiler 1.16.0-dev.1 → 1.16.0-dev.2

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 CHANGED
@@ -1,4 +1,4 @@
1
1
  export default {
2
- "version": "1.16.0-dev.1",
3
- "commit": "10b1126bd475d9c32ab859ddd27a911f61ccd69b"
2
+ "version": "1.16.0-dev.2",
3
+ "commit": "70565be6f9d2e4457302544de310cdff9d1d022d"
4
4
  };
@@ -1 +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;AAG9D,OAAO,EAAY,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAwB1E,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;AA2GD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAkDhC"}
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;AAG9D,OAAO,EAAY,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AA+B1E,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;AAqHD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAiEhC"}
@@ -5,8 +5,8 @@ import { DiagnosticError } from "../core/diagnostic-error.js";
5
5
  import { createDiagnosticCollector } from "../core/diagnostics.js";
6
6
  import { getDirectoryPath, joinPaths } from "../core/path-utils.js";
7
7
  import { NoTarget } from "../core/types.js";
8
- import { downloadAndExtractPackage } from "../package-manger/npm-package-download.js";
9
- import { fetchPackageManifest } from "../package-manger/npm-registry.js";
8
+ import { downloadAndExtractPackage, } from "../package-manger/npm-package-download.js";
9
+ import { fetchPackageManifest, NpmRegistryError, } from "../package-manger/npm-registry.js";
10
10
  import { mkTempDir } from "../utils/fs-utils.js";
11
11
  import { getPackageManagerConfig } from "./config.js";
12
12
  import { resolvePackageManagerSpec, updatePackageManagerInPackageJson, } from "./spec.js";
@@ -56,7 +56,16 @@ async function installPackageManager(host, tracer, packageManager, spec, install
56
56
  await rm(installDir, { recursive: true, force: true });
57
57
  const tempDir = await mkTempDir(host, pmDir, `tsp-pm-${packageManager}-${manifest.version}`);
58
58
  tracer.trace("downloading-extracting", `Downloading and extracting ${packageManager} at version ${manifest.version} in ${tempDir}`);
59
- const extractResult = await downloadAndExtractPackage(manifest, tempDir, spec.hash?.algorithm);
59
+ let extractResult;
60
+ try {
61
+ extractResult = await downloadAndExtractPackage(manifest, tempDir, spec.hash?.algorithm);
62
+ }
63
+ catch (error) {
64
+ if (error instanceof NpmRegistryError) {
65
+ throw new InstallDependenciesError(`Failed to download package manager ${packageManager}: ${error.message}`);
66
+ }
67
+ throw error;
68
+ }
60
69
  if (spec.hash) {
61
70
  if (spec.hash.value !== extractResult.hash.value) {
62
71
  throw new InstallDependenciesError(`Mismatch hash for package manager. (${spec.hash.algorithm})\n Expected: ${spec.hash.value}\n Actual: ${extractResult.hash}`);
@@ -108,8 +117,21 @@ export async function installTypeSpecDependencies(host, options) {
108
117
  const { spec, path: packageJsonPath } = diagnostics.pipe(await resolvePackageManagerSpecOrFail(host, tracer, options));
109
118
  const packageManager = spec.name;
110
119
  const packageManagerConfig = getPackageManagerConfig(packageManager);
111
- const manifest = await fetchPackageManifest(packageManager, spec.range);
120
+ let manifest;
121
+ try {
122
+ manifest = await fetchPackageManifest(packageManager, spec.range);
123
+ }
124
+ catch (error) {
125
+ if (error instanceof NpmRegistryError) {
126
+ throw new InstallDependenciesError(`Failed to resolve package manager ${packageManager}: ${error.message}`);
127
+ }
128
+ throw error;
129
+ }
112
130
  tracer.trace("fetched-manifest", `Resolved manifest for ${packageManager} at version ${manifest.version}`);
131
+ const bin = manifest.bin?.[packageManager];
132
+ if (bin === undefined) {
133
+ throw new InstallDependenciesError(`Package manager ${packageManager} does not define a "${packageManager}" executable.`);
134
+ }
113
135
  const installDir = joinPaths(pmDir, packageManager, manifest.version);
114
136
  if ((await isDirectory(host, installDir)) && !savePackageManager) {
115
137
  tracer.trace("reusing", `Reusing cached package manager in ${installDir}`);
@@ -124,7 +146,6 @@ export async function installTypeSpecDependencies(host, options) {
124
146
  });
125
147
  }
126
148
  }
127
- const bin = manifest.bin[packageManager];
128
149
  const binPath = joinPaths(installDir, bin);
129
150
  tracer.trace("running-binary", `Running binary ${binPath}`);
130
151
  await runPackageManager(host, packageManagerConfig, binPath, directory, stdio);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Hash } from "../install/spec.js";
2
- import { type NpmManifest } from "./npm-registry.js";
2
+ import { type NpmPackageVersion } from "./npm-registry.js";
3
3
  export declare function downloadPackageVersion(packageName: string, version: string, dest: string): Promise<ExtractedTarballResult>;
4
- export declare function downloadAndExtractPackage(manifest: NpmManifest, dest: string, hashAlgorithm?: string): Promise<ExtractedTarballResult>;
4
+ export declare function downloadAndExtractPackage(manifest: NpmPackageVersion, dest: string, hashAlgorithm?: string): Promise<ExtractedTarballResult>;
5
5
  export interface ExtractedTarballResult {
6
6
  readonly dest: string;
7
7
  readonly hash: Hash;
@@ -1 +1 @@
1
- {"version":3,"file":"npm-package-download.d.ts","sourceRoot":"","sources":["../../../src/package-manger/npm-package-download.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE3E,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,sBAAsB,CAAC,CAGjC;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,MAAiB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAEjC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB"}
1
+ {"version":3,"file":"npm-package-download.d.ts","sourceRoot":"","sources":["../../../src/package-manger/npm-package-download.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAA0C,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,sBAAsB,CAAC,CAGjC;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,MAAiB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAEjC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB"}
@@ -3,7 +3,7 @@
3
3
  import { createHash } from "crypto";
4
4
  import { Readable } from "stream";
5
5
  import { extract as tarX } from "tar/extract";
6
- import { fetchPackageManifest } from "./npm-registry.js";
6
+ import { fetchPackageManifest, NpmRegistryError } from "./npm-registry.js";
7
7
  export async function downloadPackageVersion(packageName, version, dest) {
8
8
  const manifest = await fetchPackageManifest(packageName, version);
9
9
  return downloadAndExtractTarball(manifest.dist.tarball, dest);
@@ -12,7 +12,20 @@ export async function downloadAndExtractPackage(manifest, dest, hashAlgorithm =
12
12
  return downloadAndExtractTarball(manifest.dist.tarball, dest, hashAlgorithm);
13
13
  }
14
14
  async function downloadAndExtractTarball(url, dest, hashAlgorithm = "sha512") {
15
- const res = await fetch(url);
15
+ let res;
16
+ try {
17
+ res = await fetch(url);
18
+ }
19
+ catch (error) {
20
+ const message = error instanceof Error ? `: ${error.message}` : "";
21
+ throw new NpmRegistryError(`Request to ${url} failed${message}`);
22
+ }
23
+ if (!res.ok) {
24
+ throw new NpmRegistryError(`Request to ${url} failed with status ${res.status}.`);
25
+ }
26
+ if (res.body === null) {
27
+ throw new NpmRegistryError(`Request to ${url} returned an empty response.`);
28
+ }
16
29
  const tarballStream = Readable.fromWeb(res.body);
17
30
  const hash = tarballStream.pipe(createHash(hashAlgorithm));
18
31
  const extractor = tarX({
@@ -29,7 +42,13 @@ async function downloadAndExtractTarball(url, dest, hashAlgorithm = "sha512") {
29
42
  tarballStream.on("error", (er) => reject(er));
30
43
  });
31
44
  tarballStream.pipe(extractor);
32
- await p;
45
+ try {
46
+ await p;
47
+ }
48
+ catch (error) {
49
+ const message = error instanceof Error ? `: ${error.message}` : "";
50
+ throw new NpmRegistryError(`Failed to extract package from ${url}${message}`);
51
+ }
33
52
  return { dest, hash: { algorithm: hashAlgorithm, value: hash.digest("hex") } };
34
53
  }
35
54
  //# sourceMappingURL=npm-package-download.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm-package-download.js","sourceRoot":"","sources":["../../../src/package-manger/npm-package-download.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,6EAA6E;AAC7E,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;AAE9C,OAAO,EAAE,oBAAoB,EAAoB,MAAM,mBAAmB,CAAC;AAE3E,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"}
1
+ {"version":3,"file":"npm-package-download.js","sourceRoot":"","sources":["../../../src/package-manger/npm-package-download.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,3 @@
1
- /** Manifest of a single package version. */
2
- export interface NpmManifest {
3
- readonly name: string;
4
- readonly version: string;
5
- readonly dependencies: Record<string, string>;
6
- readonly optionalDependencies: Record<string, string>;
7
- readonly devDependencies: Record<string, string>;
8
- readonly peerDependencies: Record<string, string>;
9
- readonly bundleDependencies: false | string[];
10
- readonly dist: NpmPackageDist;
11
- readonly bin: Record<string, string> | null;
12
- readonly _shrinkwrap: Record<string, unknown> | null;
13
- readonly engines?: Record<string, string> | undefined;
14
- readonly cpu?: string[] | undefined;
15
- readonly os?: string[] | undefined;
16
- readonly _id?: string | undefined;
17
- readonly [key: string]: unknown;
18
- }
19
- /** Document listing a package information and all its versions. */
20
- export interface NpmPackument {
21
- readonly name: string;
22
- readonly "dist-tags": {
23
- latest: string;
24
- } & Record<string, string>;
25
- readonly versions: Record<string, NpmPackageVersion>;
26
- readonly [key: string]: unknown;
27
- }
28
1
  export interface NpmPackageVersion {
29
2
  readonly name: string;
30
3
  readonly version: string;
@@ -32,9 +5,12 @@ export interface NpmPackageVersion {
32
5
  readonly optionalDependencies?: Record<string, string> | undefined;
33
6
  readonly devDependencies?: Record<string, string> | undefined;
34
7
  readonly peerDependencies?: Record<string, string> | undefined;
35
- readonly directories: {};
8
+ readonly bundleDependencies?: false | string[] | undefined;
36
9
  readonly dist: NpmPackageDist;
37
- readonly _hasShrinkwrap: boolean;
10
+ readonly bin?: Record<string, string> | null | undefined;
11
+ readonly _shrinkwrap?: Record<string, unknown> | null | undefined;
12
+ readonly directories?: {} | undefined;
13
+ readonly _hasShrinkwrap?: boolean | undefined;
38
14
  readonly description?: string | undefined;
39
15
  readonly main?: string | undefined;
40
16
  readonly scripts?: Record<string, string> | undefined;
@@ -53,12 +29,33 @@ export interface NpmPackageVersion {
53
29
  readonly bugs?: {
54
30
  url: string;
55
31
  } | undefined;
32
+ readonly cpu?: string[] | undefined;
33
+ readonly os?: string[] | undefined;
56
34
  readonly _id?: string | undefined;
57
35
  readonly _nodeVersion?: string | undefined;
58
36
  readonly _npmVersion?: string | undefined;
59
37
  readonly _npmUser?: NpmHuman | undefined;
60
38
  readonly [key: string]: unknown;
61
39
  }
40
+ /** Manifest of a single package version. */
41
+ export interface NpmManifest extends NpmPackageVersion {
42
+ readonly dependencies: Record<string, string>;
43
+ readonly optionalDependencies: Record<string, string>;
44
+ readonly devDependencies: Record<string, string>;
45
+ readonly peerDependencies: Record<string, string>;
46
+ readonly bundleDependencies: false | string[];
47
+ readonly bin: Record<string, string> | null;
48
+ readonly _shrinkwrap: Record<string, unknown> | null;
49
+ }
50
+ /** Document listing a package information and all its versions. */
51
+ export interface NpmPackument {
52
+ readonly name: string;
53
+ readonly "dist-tags": {
54
+ latest: string;
55
+ } & Record<string, string>;
56
+ readonly versions: Record<string, NpmPackageVersion>;
57
+ readonly [key: string]: unknown;
58
+ }
62
59
  export interface NpmPackageDist {
63
60
  readonly shasum: string;
64
61
  readonly tarball: string;
@@ -71,12 +68,14 @@ export interface NpmHuman {
71
68
  readonly email?: string | undefined;
72
69
  readonly url?: string | undefined;
73
70
  }
71
+ export declare class NpmRegistryError extends Error {
72
+ }
74
73
  /**
75
74
  * Returns the npm registry URL to use for fetching packages.
76
75
  * Uses the `TYPESPEC_NPM_REGISTRY` environment variable if set,
77
76
  * otherwise falls back to the default npm registry.
78
77
  */
79
78
  export declare function getNpmRegistry(): string;
80
- export declare function fetchPackageManifest(packageName: string, version: string): Promise<NpmManifest>;
81
- export declare function fetchLatestPackageManifest(packageName: string): Promise<NpmManifest>;
79
+ export declare function fetchPackageManifest(packageName: string, versionOrRange: string): Promise<NpmPackageVersion>;
80
+ export declare function fetchLatestPackageManifest(packageName: string): Promise<NpmPackageVersion>;
82
81
  //# sourceMappingURL=npm-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm-registry.d.ts","sourceRoot":"","sources":["../../../src/package-manger/npm-registry.ts"],"names":[],"mappings":"AAGA,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAErD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAErD,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAGjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAChB;QACE,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,GACD,SAAS,CAAC;IACd,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAID;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CAItB;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAEpF"}
1
+ {"version":3,"file":"npm-registry.d.ts","sourceRoot":"","sources":["../../../src/package-manger/npm-registry.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  // Browser-safe helpers to access the npm registry api
2
2
  // https://github.com/npm/registry/blob/main/docs/REGISTRY-API.md#package-endpoints
3
+ import semverMaxSatisfying from "semver/ranges/max-satisfying.js";
4
+ export class NpmRegistryError extends Error {
5
+ }
3
6
  const defaultRegistry = `https://registry.npmjs.org`;
4
7
  /**
5
8
  * Returns the npm registry URL to use for fetching packages.
@@ -9,12 +12,63 @@ const defaultRegistry = `https://registry.npmjs.org`;
9
12
  export function getNpmRegistry() {
10
13
  return (process.env["TYPESPEC_NPM_REGISTRY"] ?? defaultRegistry).replace(/\/$/, "");
11
14
  }
12
- export async function fetchPackageManifest(packageName, version) {
13
- const url = `${getNpmRegistry()}/${packageName}/${version}`;
14
- const res = await fetch(url);
15
- return await res.json();
15
+ export async function fetchPackageManifest(packageName, versionOrRange) {
16
+ const encodedPackageName = packageName.startsWith("@")
17
+ ? packageName.replace("/", "%2F")
18
+ : packageName;
19
+ const url = `${getNpmRegistry()}/${encodedPackageName}`;
20
+ let res;
21
+ try {
22
+ res = await fetch(url, {
23
+ headers: { Accept: "application/vnd.npm.install-v1+json" },
24
+ });
25
+ }
26
+ catch (error) {
27
+ const message = error instanceof Error ? `: ${error.message}` : "";
28
+ throw new NpmRegistryError(`Request to ${url} failed${message}`);
29
+ }
30
+ if (!res.ok) {
31
+ throw new NpmRegistryError(`Request to ${url} failed with status ${res.status}.`);
32
+ }
33
+ let response;
34
+ try {
35
+ response = await res.json();
36
+ }
37
+ catch {
38
+ throw new NpmRegistryError(`Request to ${url} returned invalid JSON.`);
39
+ }
40
+ const packument = parsePackument(url, response);
41
+ const version = packument["dist-tags"][versionOrRange] ??
42
+ semverMaxSatisfying(Object.keys(packument.versions), versionOrRange);
43
+ const manifest = version === null ? undefined : packument.versions[version];
44
+ if (manifest === undefined || !isNpmPackageVersion(manifest)) {
45
+ throw new NpmRegistryError(`Package "${packageName}" does not have a version or tag matching "${versionOrRange}".`);
46
+ }
47
+ return manifest;
16
48
  }
17
49
  export function fetchLatestPackageManifest(packageName) {
18
50
  return fetchPackageManifest(packageName, "latest");
19
51
  }
52
+ function parsePackument(url, value) {
53
+ if (!isRecord(value) ||
54
+ typeof value.name !== "string" ||
55
+ !isStringRecord(value["dist-tags"]) ||
56
+ !isRecord(value.versions)) {
57
+ throw new NpmRegistryError(`Request to ${url} returned an invalid package document.`);
58
+ }
59
+ return value;
60
+ }
61
+ function isNpmPackageVersion(value) {
62
+ return (isRecord(value) &&
63
+ typeof value.name === "string" &&
64
+ typeof value.version === "string" &&
65
+ isRecord(value.dist) &&
66
+ typeof value.dist.tarball === "string");
67
+ }
68
+ function isStringRecord(value) {
69
+ return isRecord(value) && Object.values(value).every((item) => typeof item === "string");
70
+ }
71
+ function isRecord(value) {
72
+ return typeof value === "object" && value !== null && !Array.isArray(value);
73
+ }
20
74
  //# sourceMappingURL=npm-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../../src/package-manger/npm-registry.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,mFAAmF;AAmFnF,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,cAAc,EAAE,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;IAC5D,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"}
1
+ {"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../../src/package-manger/npm-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/compiler",
3
- "version": "1.16.0-dev.1",
3
+ "version": "1.16.0-dev.2",
4
4
  "description": "TypeSpec compiler and standard library",
5
5
  "author": "Microsoft Corporation",
6
6
  "license": "MIT",