@typespec/compiler 1.16.0-dev.1 → 1.16.0-dev.4
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/binder.d.ts.map +1 -1
- package/dist/src/core/binder.js +14 -0
- package/dist/src/core/binder.js.map +1 -1
- package/dist/src/core/external-error.d.ts +1 -1
- package/dist/src/core/external-error.d.ts.map +1 -1
- package/dist/src/core/external-error.js +3 -1
- package/dist/src/core/external-error.js.map +1 -1
- package/dist/src/core/features.d.ts +3 -0
- package/dist/src/core/features.d.ts.map +1 -1
- package/dist/src/core/features.js +3 -0
- package/dist/src/core/features.js.map +1 -1
- package/dist/src/core/helpers/index.d.ts +1 -1
- package/dist/src/core/helpers/index.d.ts.map +1 -1
- package/dist/src/core/helpers/index.js +1 -1
- package/dist/src/core/helpers/index.js.map +1 -1
- package/dist/src/core/helpers/path-interpolation.d.ts +15 -0
- package/dist/src/core/helpers/path-interpolation.d.ts.map +1 -1
- package/dist/src/core/helpers/path-interpolation.js +20 -0
- package/dist/src/core/helpers/path-interpolation.js.map +1 -1
- package/dist/src/core/library.d.ts +15 -1
- package/dist/src/core/library.d.ts.map +1 -1
- package/dist/src/core/library.js +16 -0
- package/dist/src/core/library.js.map +1 -1
- package/dist/src/core/program.d.ts +11 -1
- package/dist/src/core/program.d.ts.map +1 -1
- package/dist/src/core/program.js +33 -0
- package/dist/src/core/program.js.map +1 -1
- package/dist/src/core/types.d.ts +30 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/install/install.d.ts.map +1 -1
- package/dist/src/install/install.js +26 -5
- package/dist/src/install/install.js.map +1 -1
- package/dist/src/package-manger/npm-package-download.d.ts +2 -2
- package/dist/src/package-manger/npm-package-download.d.ts.map +1 -1
- package/dist/src/package-manger/npm-package-download.js +22 -3
- package/dist/src/package-manger/npm-package-download.js.map +1 -1
- package/dist/src/package-manger/npm-registry.d.ts +30 -31
- package/dist/src/package-manger/npm-registry.d.ts.map +1 -1
- package/dist/src/package-manger/npm-registry.js +58 -4
- package/dist/src/package-manger/npm-registry.js.map +1 -1
- package/dist/src/server/type-details.js +28 -12
- package/dist/src/server/type-details.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAgC,MAAM,kBAAkB,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAgC,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAA6B,MAAM,aAAa,CAAC;AAEjF,OAAO,EACL,yBAAyB,EACzB,iCAAiC,GAElC,MAAM,WAAW,CAAC;AAUnB,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACnD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAE3C,MAAM,OAAO,wBAAyB,SAAQ,eAAe;IAC3D,YAAY,OAAe;QACzB,KAAK,CAAC;YACJ,IAAI,EAAE,+BAA+B;YACrC,OAAO;YACP,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;CACF;AASD,KAAK,UAAU,+BAA+B,CAC5C,IAAqB,EACrB,MAAc,EACd,OAA2C;IAE3C,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhF,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,YAAY;YACf,MAAM,IAAI,wBAAwB,CAAC,qDAAqD,CAAC,CAAC;QAC5F,KAAK,SAAS;YACZ,OAAO;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE;wBACJ,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,QAAQ;qBAChB;oBACD,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB;gBACD,OAAO,CAAC,kBAAkB;oBACxB,CAAC,CAAC;wBACE;4BACE,IAAI,EAAE,yBAAyB;4BAC/B,QAAQ,EAAE,SAAS;4BACnB,OAAO,EACL,8IAA8I;4BAChJ,MAAM,EAAE,QAAQ;yBACjB;qBACF;oBACH,CAAC,CAAC,EAAE;aACP,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,IAAqB,EACrB,MAAc,EACd,cAAuC,EACvC,IAAgB,EAChB,UAAkB,EAClB,QAA2B;IAE3B,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,cAAc,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAE7F,MAAM,CAAC,KAAK,CACV,wBAAwB,EACxB,8BAA8B,cAAc,eAAe,QAAQ,CAAC,OAAO,OAAO,OAAO,EAAE,CAC5F,CAAC;IACF,IAAI,aAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;YACtC,MAAM,IAAI,wBAAwB,CAChC,sCAAsC,cAAc,KAAK,KAAK,CAAC,OAAO,EAAE,CACzE,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,wBAAwB,CAChC,uCAAuC,IAAI,CAAC,IAAI,CAAC,SAAS,kBAAkB,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,aAAa,CAAC,IAAI,EAAE,CACjI,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,CACV,sBAAsB,EACtB,4BAA4B,OAAO,yBAAyB,UAAU,EAAE,CACzE,CAAC;IAEF,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,+BAA+B,UAAU,EAAE,CAAC,CAAC;IACxE,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,OAAe;IACxD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,sHAAsH;AACtH,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,OAAe;IAC/D,wEAAwE;IACxE,MAAM,OAAO,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/B,MAAM;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,CAAE,KAAa,CAAC,IAAI,KAAK,QAAQ,IAAK,KAAa,CAAC,IAAI,KAAK,OAAO,CAAC;gBACrE,CAAC,GAAG,OAAO,GAAG,CAAC,EACf,CAAC;gBACD,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1B,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAqB,EACrB,OAA2C;IAE3C,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IACrE,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC,IAAI,CACtD,MAAM,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAC7D,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,QAA2B,CAAC;QAChC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;gBACtC,MAAM,IAAI,wBAAwB,CAChC,qCAAqC,cAAc,KAAK,KAAK,CAAC,OAAO,EAAE,CACxE,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,CAAC,KAAK,CACV,kBAAkB,EAClB,yBAAyB,cAAc,eAAe,QAAQ,CAAC,OAAO,EAAE,CACzE,CAAC;QACF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,wBAAwB,CAChC,mBAAmB,cAAc,uBAAuB,cAAc,eAAe,CACtF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,qCAAqC,UAAU,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAC/C,IAAI,EACJ,MAAM,EACN,cAAc,EACd,IAAI,EACJ,UAAU,EACV,QAAQ,CACT,CAAC;YACF,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,iCAAiC,CAAC,IAAI,EAAE,eAAe,EAAE;oBAC7D,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,QAAQ,CAAC,OAAO;oBACvB,IAAI,EAAE,aAAa,CAAC,IAAI;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAE5D,MAAM,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/E,OAAO,WAAW,CAAC,WAAW,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAqB,EACrB,cAAoC,EACpC,OAAe,EACf,SAAiB,EACjB,KAAyB;IAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC3D,KAAK;QACL,GAAG,EAAE,SAAS;QACd,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,wBAAwB,EAAE,GAAG;SAC9B;KACF,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,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,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;AAED,KAAK,UAAU,WAAW,CAAC,IAAqB,EAAE,IAAY;IAC5D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Hash } from "../install/spec.js";
|
|
2
|
-
import { type
|
|
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:
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
8
|
+
readonly bundleDependencies?: false | string[] | undefined;
|
|
36
9
|
readonly dist: NpmPackageDist;
|
|
37
|
-
readonly
|
|
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,
|
|
81
|
-
export declare function fetchLatestPackageManifest(packageName: string): Promise<
|
|
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":"
|
|
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,
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../../src/package-manger/npm-registry.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,mFAAmF;AACnF,OAAO,mBAAmB,MAAM,iCAAiC,CAAC;AA8ElE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,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,cAAsB;IAEtB,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QACpD,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;QACjC,CAAC,CAAC,WAAW,CAAC;IAChB,MAAM,GAAG,GAAG,GAAG,cAAc,EAAE,IAAI,kBAAkB,EAAE,CAAC;IACxD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,EAAE,MAAM,EAAE,qCAAqC,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,gBAAgB,CAAC,cAAc,GAAG,UAAU,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,gBAAgB,CAAC,cAAc,GAAG,uBAAuB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gBAAgB,CAAC,cAAc,GAAG,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GACX,SAAS,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC;QACtC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,gBAAgB,CACxB,YAAY,WAAW,8CAA8C,cAAc,IAAI,CACxF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,WAAmB;IAC5D,OAAO,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,KAAc;IACjD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EACzB,CAAC;QACD,MAAM,IAAI,gBAAgB,CAAC,cAAc,GAAG,wCAAwC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,KAAqB,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -18,7 +18,8 @@ export async function getSymbolDetails(program, symbol, options = {
|
|
|
18
18
|
if (options.includeSignature) {
|
|
19
19
|
lines.push(await getSymbolSignature(program, symbol));
|
|
20
20
|
}
|
|
21
|
-
const
|
|
21
|
+
const type = resolveSymbolType(program, symbol);
|
|
22
|
+
const doc = getSymbolDocumentation(program, symbol, type);
|
|
22
23
|
if (doc) {
|
|
23
24
|
lines.push(doc);
|
|
24
25
|
}
|
|
@@ -41,9 +42,34 @@ export async function getSymbolDetails(program, symbol, options = {
|
|
|
41
42
|
includeBody: true,
|
|
42
43
|
}));
|
|
43
44
|
}
|
|
45
|
+
if (type) {
|
|
46
|
+
const info = program.getTypeInfo(type);
|
|
47
|
+
if (info) {
|
|
48
|
+
// Separate library contributed info from the type's own signature/documentation with a
|
|
49
|
+
// horizontal rule so it is clearly not part of the doc comment.
|
|
50
|
+
if (lines.length > 0) {
|
|
51
|
+
lines.push("---");
|
|
52
|
+
}
|
|
53
|
+
lines.push(info.content);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
44
56
|
return lines.join("\n\n");
|
|
45
57
|
}
|
|
46
|
-
|
|
58
|
+
/** Resolve the {@link Type} a symbol refers to, if any. */
|
|
59
|
+
function resolveSymbolType(program, symbol) {
|
|
60
|
+
if (symbol.type) {
|
|
61
|
+
return symbol.type;
|
|
62
|
+
}
|
|
63
|
+
const symNode = getSymNode(symbol);
|
|
64
|
+
if (symNode) {
|
|
65
|
+
const entity = program.checker.getTypeOrValueForNode(symNode);
|
|
66
|
+
if (entity && isType(entity)) {
|
|
67
|
+
return entity;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
function getSymbolDocumentation(program, symbol, type) {
|
|
47
73
|
const docs = [];
|
|
48
74
|
for (const node of [...symbol.declarations, ...(symbol.node ? [symbol.node] : [])]) {
|
|
49
75
|
// Add /** ... */ developer docs
|
|
@@ -52,16 +78,6 @@ function getSymbolDocumentation(program, symbol) {
|
|
|
52
78
|
}
|
|
53
79
|
}
|
|
54
80
|
// Add @doc(...) API docs
|
|
55
|
-
let type = symbol.type;
|
|
56
|
-
if (!type) {
|
|
57
|
-
const symNode = getSymNode(symbol);
|
|
58
|
-
if (symNode) {
|
|
59
|
-
const entity = program.checker.getTypeOrValueForNode(symNode);
|
|
60
|
-
if (entity && isType(entity)) {
|
|
61
|
-
type = entity;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
81
|
if (type) {
|
|
66
82
|
const apiDocs = getDocData(program, type);
|
|
67
83
|
// The doc comment is already included above we don't want to duplicate. Only include if it was specificed via `@doc`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-details.js","sourceRoot":"","sources":["../../../src/server/type-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAazD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgB,EAChB,MAAW,EACX,UAAmC;IACjC,gBAAgB,EAAE,IAAI;IACtB,oBAAoB,EAAE,IAAI;IAC1B,yBAAyB,EAAE,KAAK;CACjC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"type-details.js","sourceRoot":"","sources":["../../../src/server/type-details.ts"],"names":[],"mappings":"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"}
|