@sanity/pkg-utils 2.3.12 → 2.3.13-canary.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 (263) hide show
  1. package/dist/build.js +69 -0
  2. package/dist/build.js.map +1 -0
  3. package/dist/check.js +152 -0
  4. package/dist/check.js.map +1 -0
  5. package/dist/cli.cjs +6 -6
  6. package/dist/cli.cjs.map +1 -1
  7. package/dist/consoleSpy.js +49 -0
  8. package/dist/consoleSpy.js.map +1 -0
  9. package/dist/core/config/defineConfig.js +5 -0
  10. package/dist/core/config/defineConfig.js.map +1 -0
  11. package/dist/core/config/findConfigFile.js +21 -0
  12. package/dist/core/config/findConfigFile.js.map +1 -0
  13. package/dist/core/config/loadConfig.js +34 -0
  14. package/dist/core/config/loadConfig.js.map +1 -0
  15. package/dist/core/config/resolveConfigProperty.js +9 -0
  16. package/dist/core/config/resolveConfigProperty.js.map +1 -0
  17. package/dist/core/defaults.js +3 -0
  18. package/dist/core/defaults.js.map +1 -0
  19. package/dist/core/findCommonPath.js +28 -0
  20. package/dist/core/findCommonPath.js.map +1 -0
  21. package/dist/core/isRecord.js +5 -0
  22. package/dist/core/isRecord.js.map +1 -0
  23. package/dist/core/pkg/helpers.js +24 -0
  24. package/dist/core/pkg/helpers.js.map +1 -0
  25. package/dist/core/pkg/loadPkg.js +18 -0
  26. package/dist/core/pkg/loadPkg.js.map +1 -0
  27. package/dist/core/pkg/loadPkgWithReporting.js +107 -0
  28. package/dist/core/pkg/loadPkgWithReporting.js.map +1 -0
  29. package/dist/core/pkg/parseExports.js +75 -0
  30. package/dist/core/pkg/parseExports.js.map +1 -0
  31. package/dist/core/pkg/pkgExt.js +29 -0
  32. package/dist/core/pkg/pkgExt.js.map +1 -0
  33. package/dist/core/pkg/validateExports.js +19 -0
  34. package/dist/core/pkg/validateExports.js.map +1 -0
  35. package/dist/core/pkg/validatePkg.js +49 -0
  36. package/dist/core/pkg/validatePkg.js.map +1 -0
  37. package/dist/core/template/createFromTemplate.js +59 -0
  38. package/dist/core/template/createFromTemplate.js.map +1 -0
  39. package/dist/core/template/define.js +5 -0
  40. package/dist/core/template/define.js.map +1 -0
  41. package/dist/core/ts/loadTSConfig.js +15 -0
  42. package/dist/core/ts/loadTSConfig.js.map +1 -0
  43. package/dist/fileExists.js +11 -0
  44. package/dist/fileExists.js.map +1 -0
  45. package/dist/getFilesize.js +8 -0
  46. package/dist/getFilesize.js.map +1 -0
  47. package/dist/globFiles.js +7 -0
  48. package/dist/globFiles.js.map +1 -0
  49. package/dist/index.cjs +44 -30
  50. package/dist/index.cjs.map +1 -1
  51. package/dist/index.d.ts +4 -2
  52. package/dist/index.js +24 -2505
  53. package/dist/index.js.map +1 -1
  54. package/dist/init.js +42 -0
  55. package/dist/init.js.map +1 -0
  56. package/dist/isEmptyDirectory.js +6 -0
  57. package/dist/isEmptyDirectory.js.map +1 -0
  58. package/dist/logger.js +37 -0
  59. package/dist/logger.js.map +1 -0
  60. package/dist/package.json.cjs +8 -0
  61. package/dist/package.json.cjs.map +1 -0
  62. package/dist/printExtractMessages.js +32 -0
  63. package/dist/printExtractMessages.js.map +1 -0
  64. package/dist/printPackageTree.js +92 -0
  65. package/dist/printPackageTree.js.map +1 -0
  66. package/dist/resolveBrowserTarget.js +27 -0
  67. package/dist/resolveBrowserTarget.js.map +1 -0
  68. package/dist/resolveBrowserslistVersions.js +44 -0
  69. package/dist/resolveBrowserslistVersions.js.map +1 -0
  70. package/dist/resolveBuildContext.js +109 -0
  71. package/dist/resolveBuildContext.js.map +1 -0
  72. package/dist/resolveBuildTasks.js +140 -0
  73. package/dist/resolveBuildTasks.js.map +1 -0
  74. package/dist/resolveNodeTarget.js +12 -0
  75. package/dist/resolveNodeTarget.js.map +1 -0
  76. package/dist/resolveWatchTasks.js +103 -0
  77. package/dist/resolveWatchTasks.js.map +1 -0
  78. package/dist/spinner.js +15 -0
  79. package/dist/spinner.js.map +1 -0
  80. package/dist/{_chunks/buildAction-e950d498.cjs → src/cli/buildAction.cjs} +6 -3
  81. package/dist/src/cli/buildAction.cjs.map +1 -0
  82. package/dist/{_chunks/checkAction-c3e5da35.cjs → src/cli/checkAction.cjs} +6 -3
  83. package/dist/src/cli/checkAction.cjs.map +1 -0
  84. package/dist/{_chunks/handleError-13d87f55.cjs → src/cli/handleError.cjs} +4 -1
  85. package/dist/src/cli/handleError.cjs.map +1 -0
  86. package/dist/{_chunks/initAction-2abd8576.cjs → src/cli/initAction.cjs} +6 -3
  87. package/dist/src/cli/initAction.cjs.map +1 -0
  88. package/dist/{_chunks/watchAction-63c8a721.cjs → src/cli/watchAction.cjs} +6 -3
  89. package/dist/src/cli/watchAction.cjs.map +1 -0
  90. package/dist/src/node/build.cjs +74 -0
  91. package/dist/src/node/build.cjs.map +1 -0
  92. package/dist/src/node/check.cjs +164 -0
  93. package/dist/src/node/check.cjs.map +1 -0
  94. package/dist/src/node/consoleSpy.cjs +54 -0
  95. package/dist/src/node/consoleSpy.cjs.map +1 -0
  96. package/dist/src/node/core/config/defineConfig.cjs +10 -0
  97. package/dist/src/node/core/config/defineConfig.cjs.map +1 -0
  98. package/dist/src/node/core/config/findConfigFile.cjs +33 -0
  99. package/dist/src/node/core/config/findConfigFile.cjs.map +1 -0
  100. package/dist/src/node/core/config/loadConfig.cjs +46 -0
  101. package/dist/src/node/core/config/loadConfig.cjs.map +1 -0
  102. package/dist/src/node/core/config/resolveConfigProperty.cjs +14 -0
  103. package/dist/src/node/core/config/resolveConfigProperty.cjs.map +1 -0
  104. package/dist/src/node/core/defaults.cjs +8 -0
  105. package/dist/src/node/core/defaults.cjs.map +1 -0
  106. package/dist/src/node/core/findCommonPath.cjs +40 -0
  107. package/dist/src/node/core/findCommonPath.cjs.map +1 -0
  108. package/dist/src/node/core/isRecord.cjs +10 -0
  109. package/dist/src/node/core/isRecord.cjs.map +1 -0
  110. package/dist/src/node/core/pkg/helpers.cjs +31 -0
  111. package/dist/src/node/core/pkg/helpers.cjs.map +1 -0
  112. package/dist/src/node/core/pkg/loadPkg.cjs +30 -0
  113. package/dist/src/node/core/pkg/loadPkg.cjs.map +1 -0
  114. package/dist/src/node/core/pkg/loadPkgWithReporting.cjs +118 -0
  115. package/dist/src/node/core/pkg/loadPkgWithReporting.cjs.map +1 -0
  116. package/dist/src/node/core/pkg/parseExports.cjs +80 -0
  117. package/dist/src/node/core/pkg/parseExports.cjs.map +1 -0
  118. package/dist/src/node/core/pkg/pkgExt.cjs +35 -0
  119. package/dist/src/node/core/pkg/pkgExt.cjs.map +1 -0
  120. package/dist/src/node/core/pkg/validateExports.cjs +24 -0
  121. package/dist/src/node/core/pkg/validateExports.cjs.map +1 -0
  122. package/dist/src/node/core/pkg/validatePkg.cjs +54 -0
  123. package/dist/src/node/core/pkg/validatePkg.cjs.map +1 -0
  124. package/dist/src/node/core/template/createFromTemplate.cjs +70 -0
  125. package/dist/src/node/core/template/createFromTemplate.cjs.map +1 -0
  126. package/dist/src/node/core/template/define.cjs +10 -0
  127. package/dist/src/node/core/template/define.cjs.map +1 -0
  128. package/dist/src/node/core/ts/loadTSConfig.cjs +26 -0
  129. package/dist/src/node/core/ts/loadTSConfig.cjs.map +1 -0
  130. package/dist/src/node/fileExists.cjs +16 -0
  131. package/dist/src/node/fileExists.cjs.map +1 -0
  132. package/dist/src/node/getFilesize.cjs +19 -0
  133. package/dist/src/node/getFilesize.cjs.map +1 -0
  134. package/dist/src/node/globFiles.cjs +19 -0
  135. package/dist/src/node/globFiles.cjs.map +1 -0
  136. package/dist/src/node/init.cjs +47 -0
  137. package/dist/src/node/init.cjs.map +1 -0
  138. package/dist/src/node/isEmptyDirectory.cjs +11 -0
  139. package/dist/src/node/isEmptyDirectory.cjs.map +1 -0
  140. package/dist/src/node/logger.cjs +48 -0
  141. package/dist/src/node/logger.cjs.map +1 -0
  142. package/dist/src/node/printExtractMessages.cjs +44 -0
  143. package/dist/src/node/printExtractMessages.cjs.map +1 -0
  144. package/dist/src/node/printPackageTree.cjs +105 -0
  145. package/dist/src/node/printPackageTree.cjs.map +1 -0
  146. package/dist/src/node/resolveBrowserTarget.cjs +32 -0
  147. package/dist/src/node/resolveBrowserTarget.cjs.map +1 -0
  148. package/dist/src/node/resolveBrowserslistVersions.cjs +55 -0
  149. package/dist/src/node/resolveBrowserslistVersions.cjs.map +1 -0
  150. package/dist/src/node/resolveBuildContext.cjs +120 -0
  151. package/dist/src/node/resolveBuildContext.cjs.map +1 -0
  152. package/dist/{_chunks/build-11470607.cjs → src/node/resolveBuildTasks.cjs} +8 -80
  153. package/dist/src/node/resolveBuildTasks.cjs.map +1 -0
  154. package/dist/src/node/resolveNodeTarget.cjs +17 -0
  155. package/dist/src/node/resolveNodeTarget.cjs.map +1 -0
  156. package/dist/src/node/resolveWatchTasks.cjs +115 -0
  157. package/dist/src/node/resolveWatchTasks.cjs.map +1 -0
  158. package/dist/src/node/spinner.cjs +26 -0
  159. package/dist/src/node/spinner.cjs.map +1 -0
  160. package/dist/src/node/tasks/dts/DtsError.cjs +17 -0
  161. package/dist/src/node/tasks/dts/DtsError.cjs.map +1 -0
  162. package/dist/src/node/tasks/dts/buildTypes.cjs +50 -0
  163. package/dist/src/node/tasks/dts/buildTypes.cjs.map +1 -0
  164. package/dist/src/node/tasks/dts/createApiExtractorConfig.cjs +52 -0
  165. package/dist/src/node/tasks/dts/createApiExtractorConfig.cjs.map +1 -0
  166. package/dist/src/node/tasks/dts/createTSDocConfig.cjs +37 -0
  167. package/dist/src/node/tasks/dts/createTSDocConfig.cjs.map +1 -0
  168. package/dist/src/node/tasks/dts/doExtract.cjs +88 -0
  169. package/dist/src/node/tasks/dts/doExtract.cjs.map +1 -0
  170. package/dist/src/node/tasks/dts/dtsTask.cjs +44 -0
  171. package/dist/src/node/tasks/dts/dtsTask.cjs.map +1 -0
  172. package/dist/src/node/tasks/dts/dtsWatchTask.cjs +47 -0
  173. package/dist/src/node/tasks/dts/dtsWatchTask.cjs.map +1 -0
  174. package/dist/src/node/tasks/dts/extractModuleBlocks.cjs +38 -0
  175. package/dist/src/node/tasks/dts/extractModuleBlocks.cjs.map +1 -0
  176. package/dist/src/node/tasks/dts/extractTypes.cjs +90 -0
  177. package/dist/src/node/tasks/dts/extractTypes.cjs.map +1 -0
  178. package/dist/src/node/tasks/dts/getExtractMessagesConfig.cjs +73 -0
  179. package/dist/src/node/tasks/dts/getExtractMessagesConfig.cjs.map +1 -0
  180. package/dist/src/node/tasks/dts/printDiagnostic.cjs +48 -0
  181. package/dist/src/node/tasks/dts/printDiagnostic.cjs.map +1 -0
  182. package/dist/src/node/tasks/index.cjs +26 -0
  183. package/dist/src/node/tasks/index.cjs.map +1 -0
  184. package/dist/src/node/tasks/node/reexportCjsTask.cjs +64 -0
  185. package/dist/src/node/tasks/node/reexportCjsTask.cjs.map +1 -0
  186. package/dist/src/node/tasks/rollup/resolveRollupConfig.cjs +207 -0
  187. package/dist/src/node/tasks/rollup/resolveRollupConfig.cjs.map +1 -0
  188. package/dist/src/node/tasks/rollup/rollupTask.cjs +116 -0
  189. package/dist/src/node/tasks/rollup/rollupTask.cjs.map +1 -0
  190. package/dist/src/node/tasks/rollup/rollupWatchTask.cjs +72 -0
  191. package/dist/src/node/tasks/rollup/rollupWatchTask.cjs.map +1 -0
  192. package/dist/{_chunks/init-2377e6e5.cjs → src/node/templates/default/template.cjs} +23 -112
  193. package/dist/src/node/templates/default/template.cjs.map +1 -0
  194. package/dist/src/node/watch.cjs +90 -0
  195. package/dist/src/node/watch.cjs.map +1 -0
  196. package/dist/src/node/watchConfigFiles.cjs +40 -0
  197. package/dist/src/node/watchConfigFiles.cjs.map +1 -0
  198. package/dist/src/node/watchFiles.cjs +33 -0
  199. package/dist/src/node/watchFiles.cjs.map +1 -0
  200. package/dist/tasks/dts/DtsError.js +12 -0
  201. package/dist/tasks/dts/DtsError.js.map +1 -0
  202. package/dist/tasks/dts/buildTypes.js +39 -0
  203. package/dist/tasks/dts/buildTypes.js.map +1 -0
  204. package/dist/tasks/dts/createApiExtractorConfig.js +41 -0
  205. package/dist/tasks/dts/createApiExtractorConfig.js.map +1 -0
  206. package/dist/tasks/dts/createTSDocConfig.js +32 -0
  207. package/dist/tasks/dts/createTSDocConfig.js.map +1 -0
  208. package/dist/tasks/dts/doExtract.js +76 -0
  209. package/dist/tasks/dts/doExtract.js.map +1 -0
  210. package/dist/tasks/dts/dtsTask.js +33 -0
  211. package/dist/tasks/dts/dtsTask.js.map +1 -0
  212. package/dist/tasks/dts/dtsWatchTask.js +36 -0
  213. package/dist/tasks/dts/dtsWatchTask.js.map +1 -0
  214. package/dist/tasks/dts/extractModuleBlocks.js +26 -0
  215. package/dist/tasks/dts/extractModuleBlocks.js.map +1 -0
  216. package/dist/tasks/dts/extractTypes.js +77 -0
  217. package/dist/tasks/dts/extractTypes.js.map +1 -0
  218. package/dist/tasks/dts/getExtractMessagesConfig.js +68 -0
  219. package/dist/tasks/dts/getExtractMessagesConfig.js.map +1 -0
  220. package/dist/tasks/dts/printDiagnostic.js +35 -0
  221. package/dist/tasks/dts/printDiagnostic.js.map +1 -0
  222. package/dist/tasks/index.js +16 -0
  223. package/dist/tasks/index.js.map +1 -0
  224. package/dist/tasks/node/reexportCjsTask.js +52 -0
  225. package/dist/tasks/node/reexportCjsTask.js.map +1 -0
  226. package/dist/tasks/rollup/resolveRollupConfig.js +189 -0
  227. package/dist/tasks/rollup/resolveRollupConfig.js.map +1 -0
  228. package/dist/tasks/rollup/rollupTask.js +104 -0
  229. package/dist/tasks/rollup/rollupTask.js.map +1 -0
  230. package/dist/tasks/rollup/rollupWatchTask.js +60 -0
  231. package/dist/tasks/rollup/rollupWatchTask.js.map +1 -0
  232. package/dist/templates/default/template.js +366 -0
  233. package/dist/templates/default/template.js.map +1 -0
  234. package/dist/watch.js +79 -0
  235. package/dist/watch.js.map +1 -0
  236. package/dist/watchConfigFiles.js +29 -0
  237. package/dist/watchConfigFiles.js.map +1 -0
  238. package/dist/watchFiles.js +22 -0
  239. package/dist/watchFiles.js.map +1 -0
  240. package/package.json +3 -2
  241. package/src/node/core/pkg/loadPkgWithReporting.ts +91 -18
  242. package/src/node/core/pkg/types.ts +4 -2
  243. package/src/node/core/pkg/validatePkg.ts +31 -3
  244. package/src/node/resolveBuildTasks.ts +2 -2
  245. package/src/node/tasks/rollup/resolveRollupConfig.ts +4 -0
  246. package/src/node/tasks/rollup/rollupTask.ts +8 -0
  247. package/dist/_chunks/build-11470607.cjs.map +0 -1
  248. package/dist/_chunks/buildAction-e950d498.cjs.map +0 -1
  249. package/dist/_chunks/check-0665cb35.cjs +0 -250
  250. package/dist/_chunks/check-0665cb35.cjs.map +0 -1
  251. package/dist/_chunks/checkAction-c3e5da35.cjs.map +0 -1
  252. package/dist/_chunks/consoleSpy-d738cb9f.cjs +0 -550
  253. package/dist/_chunks/consoleSpy-d738cb9f.cjs.map +0 -1
  254. package/dist/_chunks/handleError-13d87f55.cjs.map +0 -1
  255. package/dist/_chunks/index-70f8931a.cjs +0 -865
  256. package/dist/_chunks/index-70f8931a.cjs.map +0 -1
  257. package/dist/_chunks/init-2377e6e5.cjs.map +0 -1
  258. package/dist/_chunks/initAction-2abd8576.cjs.map +0 -1
  259. package/dist/_chunks/logger-c593f06b.cjs +0 -97
  260. package/dist/_chunks/logger-c593f06b.cjs.map +0 -1
  261. package/dist/_chunks/watch-d390d5e4.cjs +0 -231
  262. package/dist/_chunks/watch-d390d5e4.cjs.map +0 -1
  263. package/dist/_chunks/watchAction-63c8a721.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTSDocConfig.js","sources":["../../../src/node/tasks/dts/createTSDocConfig.ts"],"sourcesContent":["import {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {readFile} from 'fs/promises'\nimport {parse} from 'jsonc-parser'\n\n/** @public */\nexport interface TSDocCustomTag {\n name: string\n syntaxKind: 'block' | 'modifier'\n allowMultiple?: boolean\n}\n\n/** @internal */\nexport async function createTSDocConfig(opts: {\n customTags: TSDocCustomTag[]\n}): Promise<TSDocConfigFile | undefined> {\n const {customTags} = opts\n\n if (customTags.length === 0) {\n return undefined\n }\n\n const tsDocBaseBuf = await readFile(\n require.resolve('@microsoft/api-extractor/extends/tsdoc-base.json'),\n )\n\n // Include the definitions that are required for API Extractor\n // extends: ['@microsoft/api-extractor/extends/tsdoc-base.json'],\n const tsDocBaseConfig = parse(tsDocBaseBuf.toString())\n\n // Define custom tags and specify how they should be parsed\n const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(\n customTags.map((t) => ({\n tagName: `@${t.name}`,\n syntaxKind: t.syntaxKind,\n allowMultiple: t.allowMultiple,\n })),\n )\n\n // Indicate that custom tags are supported by your tooling.\n // (Without this, warnings may be reported saying that a tag is unsupported.)\n const supportForTags = {...tsDocBaseConfig.supportForTags}\n\n for (const customTag of customTags) {\n supportForTags[`@${customTag.name}`] = true\n }\n\n return TSDocConfigFile.loadFromObject({\n ...tsDocBaseConfig,\n noStandardTags: false,\n tagDefinitions,\n supportForTags,\n })\n}\n"],"names":["createTSDocConfig","opts","customTags","length","tsDocBaseBuf","readFile","require","resolve","tsDocBaseConfig","parse","toString","tagDefinitions","concat","map","t","tagName","name","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags"],"mappings":";;;AAYA,eAAsBA,kBAAkBC,IAEC,EAAA;EACjC,MAAA;IAACC;EAAc,CAAA,GAAAD,IAAA;EAEjB,IAAAC,UAAA,CAAWC,WAAW,CAAG,EAAA;IACpB,OAAA,KAAA,CAAA;EACT;EAEA,MAAMC,eAAe,MAAMC,QAAA,CACzBC,OAAA,CAAQC,QAAQ,kDAAkD,CAAA,CACpE;EAIA,MAAMC,eAAkB,GAAAC,KAAA,CAAML,YAAa,CAAAM,QAAA,CAAU,CAAA,CAAA;EAGrD,MAAMC,cAAkB,GAAA,CAAAH,eAAA,CAAgBG,cAAkB,IAAA,EAAI,EAAAC,MAAA,CAC5DV,UAAA,CAAWW,GAAI,CAACC,CAAO,KAAA;IACrBC,OAAA,MAAAH,MAAA,CAAaE,CAAA,CAAEE,IAAI,CAAA;IACnBC,YAAYH,CAAE,CAAAG,UAAA;IACdC,eAAeJ,CAAE,CAAAI;EAAA,CACjB,CAAA,CAAA,CACJ;EAIA,MAAMC,cAAiB,GAAA;IAAC,GAAGX,eAAA,CAAgBW;EAAc,CAAA;EAEzD,KAAA,MAAWC,aAAalB,UAAY,EAAA;IAClCiB,cAAA,KAAAP,MAAA,CAAmBQ,SAAA,CAAUJ,IAAI,EAAM,GAAA,IAAA;EACzC;EAEA,OAAOK,gBAAgBC,cAAe,CAAA;IACpC,GAAGd,eAAA;IACHe,cAAgB,EAAA,KAAA;IAChBZ,cAAA;IACAQ;EAAA,CACD,CAAA;AACH;"}
@@ -0,0 +1,76 @@
1
+ import path from 'path';
2
+ import rimraf from 'rimraf';
3
+ import { buildTypes } from './buildTypes.js';
4
+ import { DtsError } from './DtsError.js';
5
+ import { extractTypes } from './extractTypes.js';
6
+ async function doExtract(ctx, task) {
7
+ var _a, _b;
8
+ const {
9
+ config,
10
+ cwd,
11
+ files,
12
+ logger,
13
+ strict,
14
+ ts
15
+ } = ctx;
16
+ if (!ts.config || !ts.configPath) {
17
+ return {
18
+ type: "dts",
19
+ messages: [],
20
+ results: []
21
+ };
22
+ }
23
+ const {
24
+ outDir,
25
+ rootDir = cwd
26
+ } = ts.config.options;
27
+ if (!outDir) {
28
+ throw new Error("tsconfig.json is missing `compilerOptions.outDir`");
29
+ }
30
+ const tmpPath = path.resolve(outDir, "__tmp__");
31
+ await buildTypes({
32
+ cwd,
33
+ logger,
34
+ outDir: tmpPath,
35
+ strict,
36
+ tsconfig: ts.config
37
+ });
38
+ const messages = [];
39
+ const results = [];
40
+ for (const entry of task.entries) {
41
+ const exportPath = entry.exportPath === "." ? "./index" : entry.exportPath;
42
+ const sourceTypesPath = path.resolve(tmpPath, path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\.ts$/, ".d.ts"));
43
+ const targetPath = path.resolve(cwd, entry.targetPath);
44
+ const filePath = path.relative(outDir, targetPath);
45
+ const result = await extractTypes({
46
+ customTags: (_a = config == null ? void 0 : config.extract) == null ? void 0 : _a.customTags,
47
+ cwd,
48
+ distPath: outDir,
49
+ exportPath,
50
+ files,
51
+ filePath,
52
+ projectPath: cwd,
53
+ rules: (_b = config == null ? void 0 : config.extract) == null ? void 0 : _b.rules,
54
+ sourceTypesPath,
55
+ tmpPath,
56
+ tsconfigPath: path.resolve(cwd, ts.configPath || "tsconfig.json")
57
+ });
58
+ messages.push(...result.messages);
59
+ if (result.messages.some(msg => msg.logLevel === "error")) {
60
+ await rimraf(tmpPath);
61
+ throw new DtsError("encountered errors when extracting types", result.messages);
62
+ }
63
+ results.push({
64
+ sourcePath: path.resolve(cwd, entry.sourcePath),
65
+ filePath: targetPath
66
+ });
67
+ }
68
+ await rimraf(tmpPath);
69
+ return {
70
+ type: "dts",
71
+ messages,
72
+ results
73
+ };
74
+ }
75
+ export { doExtract };
76
+ //# sourceMappingURL=doExtract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doExtract.js","sources":["../../../src/node/tasks/dts/doExtract.ts"],"sourcesContent":["import {ExtractorMessage} from '@microsoft/api-extractor'\nimport path from 'path'\nimport rimraf from 'rimraf'\n\nimport {BuildContext} from '../../core'\nimport {buildTypes} from './buildTypes'\nimport {DtsError} from './DtsError'\nimport {extractTypes} from './extractTypes'\nimport {DtsResult, DtsTask, DtsWatchTask} from './types'\n\n/**\n * - Build type definitions to a temporary directory using TypeScript compiler.\n * - Create a type definition bundle for each export entry.\n * - When done, remove the temporary directory.\n */\nexport async function doExtract(\n ctx: BuildContext,\n task: DtsTask | DtsWatchTask,\n): Promise<DtsResult> {\n const {config, cwd, files, logger, strict, ts} = ctx\n\n if (!ts.config || !ts.configPath) {\n return {type: 'dts', messages: [], results: []}\n }\n\n const {outDir, rootDir = cwd} = ts.config.options\n\n if (!outDir) {\n throw new Error('tsconfig.json is missing `compilerOptions.outDir`')\n }\n\n const tmpPath = path.resolve(outDir, '__tmp__')\n\n await buildTypes({cwd, logger, outDir: tmpPath, strict, tsconfig: ts.config})\n const messages: ExtractorMessage[] = []\n\n const results: {sourcePath: string; filePath: string}[] = []\n\n for (const entry of task.entries) {\n const exportPath = entry.exportPath === '.' ? './index' : entry.exportPath\n\n const sourceTypesPath = path.resolve(\n tmpPath,\n path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\\.ts$/, '.d.ts'),\n )\n\n const targetPath = path.resolve(cwd, entry.targetPath)\n const filePath = path.relative(outDir, targetPath)\n const result = await extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n distPath: outDir,\n exportPath,\n files,\n filePath: filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourceTypesPath: sourceTypesPath,\n tmpPath,\n tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),\n })\n\n messages.push(...result.messages)\n\n if (result.messages.some((msg) => msg.logLevel === 'error')) {\n await rimraf(tmpPath)\n\n throw new DtsError('encountered errors when extracting types', result.messages)\n }\n\n results.push({sourcePath: path.resolve(cwd, entry.sourcePath), filePath: targetPath})\n }\n\n await rimraf(tmpPath)\n\n return {type: 'dts', messages, results}\n}\n"],"names":["doExtract","ctx","task","_a","_b","config","cwd","files","logger","strict","ts","configPath","type","messages","results","outDir","rootDir","options","Error","tmpPath","path","resolve","buildTypes","tsconfig","entry","entries","exportPath","sourceTypesPath","relative","sourcePath","replace","targetPath","filePath","result","extractTypes","customTags","extract","distPath","projectPath","rules","tsconfigPath","push","some","msg","logLevel","rimraf","DtsError"],"mappings":";;;;;AAesB,eAAAA,SAAAA,CACpBC,KACAC,IACoB,EAAA;EAlBtB,IAAAC,EAAA,EAAAC,EAAA;EAmBE,MAAM;IAACC,MAAQ;IAAAC,GAAA;IAAKC;IAAOC,MAAQ;IAAAC,MAAA;IAAQC;EAAM,CAAA,GAAAT,GAAA;EAEjD,IAAI,CAACS,EAAA,CAAGL,MAAU,IAAA,CAACK,GAAGC,UAAY,EAAA;IACzB,OAAA;MAACC,MAAM,KAAO;MAAAC,QAAA,EAAU,EAAI;MAAAC,OAAA,EAAS;KAAE;EAChD;EAEA,MAAM;IAACC,MAAQ;IAAAC,OAAA,GAAUV;EAAG,CAAA,GAAII,GAAGL,MAAO,CAAAY,OAAA;EAE1C,IAAI,CAACF,MAAQ,EAAA;IACL,MAAA,IAAIG,MAAM,mDAAmD,CAAA;EACrE;EAEA,MAAMC,OAAU,GAAAC,IAAA,CAAKC,OAAQ,CAAAN,MAAA,EAAQ,SAAS,CAAA;EAExC,MAAAO,UAAA,CAAW;IAAChB,GAAA;IAAKE,MAAQ;IAAAO,MAAA,EAAQI;IAASV,MAAQ;IAAAc,QAAA,EAAUb,EAAG,CAAAL;EAAO,CAAA,CAAA;EAC5E,MAAMQ,WAA+B,EAAC;EAEtC,MAAMC,UAAoD,EAAC;EAEhD,KAAA,MAAAU,KAAA,IAAStB,KAAKuB,OAAS,EAAA;IAChC,MAAMC,UAAa,GAAAF,KAAA,CAAME,UAAe,KAAA,GAAA,GAAM,YAAYF,KAAM,CAAAE,UAAA;IAEhE,MAAMC,kBAAkBP,IAAK,CAAAC,OAAA,CAC3BF,OAAA,EACAC,IAAK,CAAAQ,QAAA,CAASZ,OAAS,EAAAI,IAAA,CAAKC,OAAQ,CAAAf,GAAA,EAAKkB,KAAM,CAAAK,UAAU,CAAC,CAAA,CAAEC,OAAQ,CAAA,OAAA,EAAS,OAAO,CAAA,CACtF;IAEA,MAAMC,UAAa,GAAAX,IAAA,CAAKC,OAAQ,CAAAf,GAAA,EAAKkB,MAAMO,UAAU,CAAA;IACrD,MAAMC,QAAW,GAAAZ,IAAA,CAAKQ,QAAS,CAAAb,MAAA,EAAQgB,UAAU,CAAA;IAC3C,MAAAE,MAAA,GAAS,MAAMC,YAAa,CAAA;MAChCC,UAAA,EAAA,CAAYhC,EAAQ,GAAAE,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAA+B,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAjC,EAAA,CAAAgC,UAAA;MAC7B7B,GAAA;MACA+B,QAAU,EAAAtB,MAAA;MACVW,UAAA;MACAnB,KAAA;MACAyB,QAAA;MACAM,WAAa,EAAAhC,GAAA;MACbiC,KAAA,EAAA,CAAOnC,EAAQ,GAAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAA+B,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAhC,EAAA,CAAAmC,KAAA;MACxBZ,eAAA;MACAR,OAAA;MACAqB,cAAcpB,IAAK,CAAAC,OAAA,CAAQf,GAAK,EAAAI,EAAA,CAAGC,cAAc,eAAe;IAAA,CACjE,CAAA;IAEQE,QAAA,CAAA4B,IAAA,CAAK,GAAGR,MAAA,CAAOpB,QAAQ,CAAA;IAE5B,IAAAoB,MAAA,CAAOpB,SAAS6B,IAAK,CAACC,OAAQA,GAAI,CAAAC,QAAA,KAAa,OAAO,CAAG,EAAA;MAC3D,MAAMC,OAAO1B,OAAO,CAAA;MAEpB,MAAM,IAAI2B,QAAA,CAAS,0CAA4C,EAAAb,MAAA,CAAOpB,QAAQ,CAAA;IAChF;IAEQC,OAAA,CAAA2B,IAAA,CAAK;MAACZ,UAAA,EAAYT,IAAK,CAAAC,OAAA,CAAQf,GAAK,EAAAkB,KAAA,CAAMK,UAAU,CAAA;MAAGG,QAAU,EAAAD;IAAW,CAAA,CAAA;EACtF;EAEA,MAAMc,OAAO1B,OAAO,CAAA;EAEpB,OAAO;IAACP,IAAA,EAAM,KAAO;IAAAC,QAAA;IAAUC;EAAO,CAAA;AACxC;"}
@@ -0,0 +1,33 @@
1
+ import chalk from 'chalk';
2
+ import { Observable } from 'rxjs';
3
+ import { printExtractMessages } from '../../printExtractMessages.js';
4
+ import { doExtract } from './doExtract.js';
5
+ import { DtsError } from './DtsError.js';
6
+ const dtsTask = {
7
+ name: (_ctx, task) => ["Build type definitions...", " entries:", ...task.entries.map(entry => [" - ".concat(chalk.cyan(entry.importId), ": "), "".concat(chalk.yellow(entry.sourcePath), " ").concat(chalk.gray("\u2192"), " ").concat(chalk.yellow(entry.targetPath))].join(""))].join("\n"),
8
+ exec: (ctx, task) => {
9
+ return new Observable(observer => {
10
+ doExtract(ctx, task).then(result => {
11
+ observer.next(result);
12
+ observer.complete();
13
+ }).catch(err => {
14
+ observer.error(err);
15
+ });
16
+ });
17
+ },
18
+ complete: (ctx, _task, result) => {
19
+ printExtractMessages(ctx, result.messages);
20
+ },
21
+ error: (ctx, _task, err) => {
22
+ const {
23
+ logger
24
+ } = ctx;
25
+ if (err instanceof DtsError) {
26
+ printExtractMessages(ctx, err.messages);
27
+ } else if (err instanceof Error) {
28
+ logger.error(err);
29
+ }
30
+ }
31
+ };
32
+ export { dtsTask };
33
+ //# sourceMappingURL=dtsTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dtsTask.js","sources":["../../../src/node/tasks/dts/dtsTask.ts"],"sourcesContent":["import chalk from 'chalk'\nimport {Observable} from 'rxjs'\n\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsTask} from './types'\n\n/** @internal */\nexport const dtsTask: TaskHandler<DtsTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `Build type definitions...`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.sourcePath)} ${chalk.gray('→')} ${chalk.yellow(entry.targetPath)}`,\n ].join(''),\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => {\n observer.error(err)\n })\n })\n },\n complete: (ctx, _task, result) => {\n printExtractMessages(ctx, result.messages)\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n"],"names":["dtsTask","name","_ctx","task","entries","map","entry","concat","chalk","cyan","importId","yellow","sourcePath","gray","targetPath","join","exec","ctx","Observable","observer","doExtract","then","result","next","complete","catch","err","error","_task","printExtractMessages","messages","logger","DtsError","Error"],"mappings":";;;;;AAUO,MAAMA,OAA2C,GAAA;EACtDC,IAAA,EAAMA,CAACC,IAAA,EAAMC,IACX,KAAA,4CAGE,GAAGA,KAAKC,OAAQ,CAAAC,GAAA,CAAKC,KACnB,IAAA,UAAAC,MAAA,CACWC,KAAA,CAAMC,IAAK,CAAAH,KAAA,CAAMI,QAAQ,CAAC,YAAAH,MAAA,CAChCC,KAAM,CAAAG,MAAA,CAAOL,KAAM,CAAAM,UAAU,CAAC,OAAAL,MAAA,CAAIC,KAAA,CAAMK,IAAK,CAAA,QAAG,CAAC,OAAAN,MAAA,CAAIC,KAAA,CAAMG,MAAO,CAAAL,KAAA,CAAMQ,UAAU,CAAC,EACxF,CAAEC,KAAK,EAAE,CACX,CAAA,CACF,CAAEA,KAAK,IAAI,CAAA;EACbC,IAAA,EAAMA,CAACC,GAAA,EAAKd,IAAS,KAAA;IACZ,OAAA,IAAIe,UAAW,CAACC,QAAa,IAAA;MAClCC,SAAA,CAAUH,GAAK,EAAAd,IAAI,CAChB,CAAAkB,IAAA,CAAMC,MAAW,IAAA;QAChBH,QAAA,CAASI,KAAKD,MAAM,CAAA;QACpBH,QAAA,CAASK,QAAS,CAAA,CAAA;MAAA,CACnB,CAAA,CACAC,KAAM,CAACC,GAAQ,IAAA;QACdP,QAAA,CAASQ,MAAMD,GAAG,CAAA;MAAA,CACnB,CAAA;IAAA,CACJ,CAAA;EACH,CAAA;EACAF,QAAU,EAAAA,CAACP,GAAK,EAAAW,KAAA,EAAON,MAAW,KAAA;IACXO,oBAAA,CAAAZ,GAAA,EAAKK,OAAOQ,QAAQ,CAAA;EAC3C,CAAA;EACAH,KAAO,EAAAA,CAACV,GAAK,EAAAW,KAAA,EAAOF,GAAQ,KAAA;IACpB,MAAA;MAACK;IAAU,CAAA,GAAAd,GAAA;IAEjB,IAAIS,eAAeM,QAAU,EAAA;MACNH,oBAAA,CAAAZ,GAAA,EAAKS,IAAII,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAWJ,eAAeO,KAAO,EAAA;MAC/BF,MAAA,CAAOJ,MAAMD,GAAG,CAAA;IAClB;EACF;AACF,CAAA;"}
@@ -0,0 +1,36 @@
1
+ import chalk from 'chalk';
2
+ import { Observable } from 'rxjs';
3
+ import { printExtractMessages } from '../../printExtractMessages.js';
4
+ import { doExtract } from './doExtract.js';
5
+ import { DtsError } from './DtsError.js';
6
+ const dtsWatchTask = {
7
+ name: (_ctx, task) => ["build type definitions", ...task.entries.map(entry => " ".concat(chalk.blue(entry.importId), ": ").concat(entry.sourcePath, " -> ").concat(entry.targetPath))].join("\n"),
8
+ exec: (ctx, task) => {
9
+ return new Observable(observer => {
10
+ doExtract(ctx, task).then(result => {
11
+ observer.next(result);
12
+ observer.complete();
13
+ }).catch(err => observer.error(err));
14
+ });
15
+ },
16
+ complete: (ctx, _task, result) => {
17
+ const {
18
+ logger
19
+ } = ctx;
20
+ printExtractMessages(ctx, result.messages);
21
+ logger.warn("watching typescript definitions is currently not supported");
22
+ logger.log();
23
+ },
24
+ error: (ctx, _task, err) => {
25
+ const {
26
+ logger
27
+ } = ctx;
28
+ if (err instanceof DtsError) {
29
+ printExtractMessages(ctx, err.messages);
30
+ } else if (err instanceof Error) {
31
+ logger.error(err);
32
+ }
33
+ }
34
+ };
35
+ export { dtsWatchTask };
36
+ //# sourceMappingURL=dtsWatchTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dtsWatchTask.js","sources":["../../../src/node/tasks/dts/dtsWatchTask.ts"],"sourcesContent":["import chalk from 'chalk'\nimport {Observable} from 'rxjs'\n\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsWatchTask} from './types'\n\n/** @internal */\nexport const dtsWatchTask: TaskHandler<DtsWatchTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`,\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: (ctx, _task, result) => {\n const {logger} = ctx\n\n printExtractMessages(ctx, result.messages)\n\n logger.warn('watching typescript definitions is currently not supported')\n logger.log()\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n"],"names":["dtsWatchTask","name","_ctx","task","entries","map","entry","concat","chalk","blue","importId","sourcePath","targetPath","join","exec","ctx","Observable","observer","doExtract","then","result","next","complete","catch","err","error","_task","logger","printExtractMessages","messages","warn","log","DtsError","Error"],"mappings":";;;;;AAUO,MAAMA,YAAqD,GAAA;EAChEC,IAAA,EAAMA,CAACC,IAAA,EAAMC,IACX,KAAA,2BAEE,GAAGA,KAAKC,OAAQ,CAAAC,GAAA,CACbC,KAAA,cAAAC,MAAA,CACWC,KAAA,CAAMC,IAAK,CAAAH,KAAA,CAAMI,QAAQ,CAAC,QAAAH,MAAA,CAAKD,KAAA,CAAMK,UAAU,UAAAJ,MAAA,CAAOD,MAAMM,UAAU,CACpF,CAAA,CACF,CAAEC,KAAK,IAAI,CAAA;EACbC,IAAA,EAAMA,CAACC,GAAA,EAAKZ,IAAS,KAAA;IACZ,OAAA,IAAIa,UAAW,CAACC,QAAa,IAAA;MAClCC,SAAA,CAAUH,GAAK,EAAAZ,IAAI,CAChB,CAAAgB,IAAA,CAAMC,MAAW,IAAA;QAChBH,QAAA,CAASI,KAAKD,MAAM,CAAA;QACpBH,QAAA,CAASK,QAAS,CAAA,CAAA;MAAA,CACnB,EACAC,KAAM,CAACC,OAAQP,QAAS,CAAAQ,KAAA,CAAMD,GAAG,CAAC,CAAA;IAAA,CACtC,CAAA;EACH,CAAA;EACAF,QAAU,EAAAA,CAACP,GAAK,EAAAW,KAAA,EAAON,MAAW,KAAA;IAC1B,MAAA;MAACO;IAAU,CAAA,GAAAZ,GAAA;IAEIa,oBAAA,CAAAb,GAAA,EAAKK,OAAOS,QAAQ,CAAA;IAEzCF,MAAA,CAAOG,KAAK,4DAA4D,CAAA;IACxEH,MAAA,CAAOI,GAAI,CAAA,CAAA;EACb,CAAA;EACAN,KAAO,EAAAA,CAACV,GAAK,EAAAW,KAAA,EAAOF,GAAQ,KAAA;IACpB,MAAA;MAACG;IAAU,CAAA,GAAAZ,GAAA;IAEjB,IAAIS,eAAeQ,QAAU,EAAA;MACNJ,oBAAA,CAAAb,GAAA,EAAKS,IAAIK,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAWL,eAAeS,KAAO,EAAA;MAC/BN,MAAA,CAAOF,MAAMD,GAAG,CAAA;IAClB;EACF;AACF,CAAA;"}
@@ -0,0 +1,26 @@
1
+ import { parse, print } from 'recast';
2
+ import typeScriptParser from 'recast/parsers/typescript';
3
+ async function extractModuleBlocksFromTypes(_ref) {
4
+ let {
5
+ tsOutDir,
6
+ extractResult
7
+ } = _ref;
8
+ const program = extractResult.compilerState.program;
9
+ const moduleBlocks = [];
10
+ const allProgramFiles = [...program.getSourceFiles()];
11
+ const sourceFiles = allProgramFiles.filter(sourceFile => sourceFile.fileName.includes(tsOutDir));
12
+ for (const sourceFile of sourceFiles) {
13
+ if (sourceFile.text.includes("declare module")) {
14
+ moduleBlocks.push(...extractModuleBlocks(sourceFile.text));
15
+ }
16
+ }
17
+ return moduleBlocks;
18
+ }
19
+ function extractModuleBlocks(fileContent) {
20
+ const ast = parse(fileContent, {
21
+ parser: typeScriptParser
22
+ });
23
+ return ast.program.body.filter(node => node.type === "TSModuleDeclaration").map(node => print(node).code);
24
+ }
25
+ export { extractModuleBlocks, extractModuleBlocksFromTypes };
26
+ //# sourceMappingURL=extractModuleBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractModuleBlocks.js","sources":["../../../src/node/tasks/dts/extractModuleBlocks.ts"],"sourcesContent":["import type {File} from '@babel/types'\nimport {ExtractorResult} from '@microsoft/api-extractor'\nimport {parse, print} from 'recast'\nimport typeScriptParser from 'recast/parsers/typescript'\nimport {Program} from 'typescript'\n\n/**\n * A workaround to find all module blocks in extract TS files.\n * @internal\n * */\nexport async function extractModuleBlocksFromTypes({\n tsOutDir,\n extractResult,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n}): Promise<string[]> {\n const program = extractResult.compilerState.program as Program\n const moduleBlocks: string[] = []\n\n // all program files, including node_modules\n const allProgramFiles = [...program.getSourceFiles()]\n\n // just our compiled files used in the program\n const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))\n\n for (const sourceFile of sourceFiles) {\n if (sourceFile.text.includes('declare module')) {\n moduleBlocks.push(...extractModuleBlocks(sourceFile.text))\n }\n }\n\n return moduleBlocks\n}\n\n/** @internal */\nexport function extractModuleBlocks(fileContent: string): string[] {\n const ast = parse(fileContent, {\n parser: typeScriptParser,\n }) as File\n\n return ast.program.body\n .filter((node) => node.type === 'TSModuleDeclaration')\n .map((node) => print(node).code)\n}\n"],"names":["extractModuleBlocksFromTypes","_ref","tsOutDir","extractResult","program","compilerState","moduleBlocks","allProgramFiles","getSourceFiles","sourceFiles","filter","sourceFile","fileName","includes","text","push","extractModuleBlocks","fileContent","ast","parse","parser","typeScriptParser","body","node","type","map","print","code"],"mappings":";;AAUA,eAAsBA,4BAA6BA,CAAAC,IAAA,EAM7B;EAAA,IAN6B;IACjDC,QAAA;IACAC;EACF,CAGsB,GAAAF,IAAA;EACd,MAAAG,OAAA,GAAUD,cAAcE,aAAc,CAAAD,OAAA;EAC5C,MAAME,eAAyB,EAAC;EAGhC,MAAMC,eAAkB,GAAA,CAAC,GAAGH,OAAA,CAAQI,eAAgB,CAAA,CAAA;EAG9C,MAAAC,WAAA,GAAcF,gBAAgBG,MAAO,CAACC,cAAeA,UAAW,CAAAC,QAAA,CAASC,QAAS,CAAAX,QAAQ,CAAC,CAAA;EAEjG,KAAA,MAAWS,cAAcF,WAAa,EAAA;IACpC,IAAIE,UAAW,CAAAG,IAAA,CAAKD,QAAS,CAAA,gBAAgB,CAAG,EAAA;MAC9CP,YAAA,CAAaS,IAAK,CAAA,GAAGC,mBAAoB,CAAAL,UAAA,CAAWG,IAAI,CAAC,CAAA;IAC3D;EACF;EAEO,OAAAR,YAAA;AACT;AAGO,SAASU,oBAAoBC,WAA+B,EAAA;EAC3D,MAAAC,GAAA,GAAMC,MAAMF,WAAa,EAAA;IAC7BG,MAAQ,EAAAC;EAAA,CACT,CAAA;EAED,OAAOH,IAAId,OAAQ,CAAAkB,IAAA,CAChBZ,MAAO,CAACa,QAASA,IAAK,CAAAC,IAAA,KAAS,qBAAqB,CAAA,CACpDC,IAAKF,IAAA,IAASG,KAAM,CAAAH,IAAI,EAAEI,IAAI,CAAA;AACnC;"}
@@ -0,0 +1,77 @@
1
+ import { ExtractorConfig, Extractor } from '@microsoft/api-extractor';
2
+ import fs from 'fs/promises';
3
+ import { mkdirp } from 'mkdirp';
4
+ import path from 'path';
5
+ import prettier from 'prettier';
6
+ import { createApiExtractorConfig } from './createApiExtractorConfig.js';
7
+ import { createTSDocConfig } from './createTSDocConfig.js';
8
+ import { extractModuleBlocksFromTypes } from './extractModuleBlocks.js';
9
+ import { getExtractMessagesConfig } from './getExtractMessagesConfig.js';
10
+ async function extractTypes(options) {
11
+ const {
12
+ customTags,
13
+ distPath,
14
+ exportPath,
15
+ files,
16
+ filePath,
17
+ projectPath,
18
+ rules,
19
+ sourceTypesPath,
20
+ tmpPath,
21
+ tsconfigPath
22
+ } = options;
23
+ const tsdocConfigFile = await createTSDocConfig({
24
+ customTags: customTags || []
25
+ });
26
+ const extractorConfig = ExtractorConfig.prepare({
27
+ configObject: createApiExtractorConfig({
28
+ distPath,
29
+ exportPath,
30
+ filePath,
31
+ messages: getExtractMessagesConfig({
32
+ rules
33
+ }),
34
+ projectFolder: projectPath,
35
+ mainEntryPointFilePath: sourceTypesPath,
36
+ tsconfigPath
37
+ }),
38
+ configObjectFullPath: void 0,
39
+ tsdocConfigFile,
40
+ packageJsonFullPath: path.resolve(projectPath, "package.json")
41
+ });
42
+ const messages = [];
43
+ const extractorResult = Extractor.invoke(extractorConfig, {
44
+ // Equivalent to the "--local" command-line parameter
45
+ localBuild: true,
46
+ // Equivalent to the "--verbose" command-line parameter
47
+ showVerboseMessages: true,
48
+ // handle messages
49
+ messageCallback(message) {
50
+ messages.push(message);
51
+ message.handled = true;
52
+ }
53
+ });
54
+ const typesPath = path.resolve(distPath, filePath);
55
+ const typesBuf = await fs.readFile(typesPath);
56
+ const prettierConfig = await prettier.resolveConfig(typesPath);
57
+ await mkdirp(path.dirname(typesPath));
58
+ const moduleBlocks = await extractModuleBlocksFromTypes({
59
+ extractResult: extractorResult,
60
+ tsOutDir: tmpPath
61
+ });
62
+ const code = [typesBuf.toString(), ...moduleBlocks].join("\n\n");
63
+ await fs.writeFile(typesPath, await prettier.format(code, {
64
+ ...prettierConfig,
65
+ filepath: typesPath
66
+ }));
67
+ files.push({
68
+ type: "types",
69
+ path: typesPath
70
+ });
71
+ return {
72
+ extractorResult,
73
+ messages
74
+ };
75
+ }
76
+ export { extractTypes };
77
+ //# sourceMappingURL=extractTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractTypes.js","sources":["../../../src/node/tasks/dts/extractTypes.ts"],"sourcesContent":["import {\n Extractor,\n ExtractorConfig,\n ExtractorMessage,\n ExtractorResult,\n} from '@microsoft/api-extractor'\nimport fs from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport path from 'path'\nimport prettier from 'prettier'\n\nimport {BuildFile, PkgConfigOptions} from '../../core'\nimport {createApiExtractorConfig} from './createApiExtractorConfig'\nimport {createTSDocConfig} from './createTSDocConfig'\nimport {extractModuleBlocksFromTypes} from './extractModuleBlocks'\nimport {getExtractMessagesConfig} from './getExtractMessagesConfig'\n\nexport async function extractTypes(options: {\n customTags: NonNullable<PkgConfigOptions['extract']>['customTags']\n cwd: string\n distPath: string\n exportPath: string\n filePath: string\n files: BuildFile[]\n projectPath: string\n rules?: NonNullable<PkgConfigOptions['extract']>['rules']\n sourceTypesPath: string\n tmpPath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {\n customTags,\n distPath,\n exportPath,\n files,\n filePath,\n projectPath,\n rules,\n sourceTypesPath,\n tmpPath,\n tsconfigPath,\n } = options\n\n const tsdocConfigFile = await createTSDocConfig({\n customTags: customTags || [],\n })\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: getExtractMessagesConfig({rules}),\n projectFolder: projectPath,\n mainEntryPointFilePath: sourceTypesPath,\n tsconfigPath,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(projectPath, 'package.json'),\n })\n\n const messages: ExtractorMessage[] = []\n\n // Invoke API Extractor\n const extractorResult = Extractor.invoke(extractorConfig, {\n // Equivalent to the \"--local\" command-line parameter\n localBuild: true,\n // Equivalent to the \"--verbose\" command-line parameter\n showVerboseMessages: true,\n // handle messages\n messageCallback(message: ExtractorMessage) {\n messages.push(message)\n message.handled = true\n },\n })\n\n const typesPath = path.resolve(distPath, filePath)\n const typesBuf = await fs.readFile(typesPath)\n const prettierConfig = await prettier.resolveConfig(typesPath)\n\n await mkdirp(path.dirname(typesPath))\n\n const moduleBlocks = await extractModuleBlocksFromTypes({\n extractResult: extractorResult,\n tsOutDir: tmpPath,\n })\n\n const code = [typesBuf.toString(), ...moduleBlocks].join('\\n\\n')\n\n await fs.writeFile(\n typesPath,\n await prettier.format(code, {\n ...prettierConfig,\n filepath: typesPath,\n }),\n )\n\n // Add to `files` in context\n files.push({\n type: 'types',\n path: typesPath,\n })\n\n return {extractorResult, messages}\n}\n"],"names":["extractTypes","options","customTags","distPath","exportPath","files","filePath","projectPath","rules","sourceTypesPath","tmpPath","tsconfigPath","tsdocConfigFile","createTSDocConfig","extractorConfig","ExtractorConfig","prepare","configObject","createApiExtractorConfig","messages","getExtractMessagesConfig","projectFolder","mainEntryPointFilePath","configObjectFullPath","packageJsonFullPath","path","resolve","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","message","push","handled","typesPath","typesBuf","fs","readFile","prettierConfig","prettier","resolveConfig","mkdirp","dirname","moduleBlocks","extractModuleBlocksFromTypes","extractResult","tsOutDir","code","toString","join","writeFile","format","filepath","type"],"mappings":";;;;;;;;;AAiBA,eAAsBA,aAAaC,OAY2C,EAAA;EACtE,MAAA;IACJC,UAAA;IACAC,QAAA;IACAC,UAAA;IACAC,KAAA;IACAC,QAAA;IACAC,WAAA;IACAC,KAAA;IACAC,eAAA;IACAC,OAAA;IACAC;EACE,CAAA,GAAAV,OAAA;EAEE,MAAAW,eAAA,GAAkB,MAAMC,iBAAkB,CAAA;IAC9CX,UAAA,EAAYA,cAAc;EAAC,CAC5B,CAAA;EAEK,MAAAY,eAAA,GAAmCC,gBAAgBC,OAAQ,CAAA;IAC/DC,cAAcC,wBAAyB,CAAA;MACrCf,QAAA;MACAC,UAAA;MACAE,QAAA;MACAa,QAAU,EAAAC,wBAAA,CAAyB;QAACZ;OAAM,CAAA;MAC1Ca,aAAe,EAAAd,WAAA;MACfe,sBAAwB,EAAAb,eAAA;MACxBE;IAAA,CACD,CAAA;IACDY,oBAAsB,EAAA,KAAA,CAAA;IACtBX,eAAA;IACAY,mBAAqB,EAAAC,IAAA,CAAKC,OAAQ,CAAAnB,WAAA,EAAa,cAAc;EAAA,CAC9D,CAAA;EAED,MAAMY,WAA+B,EAAC;EAGhC,MAAAQ,eAAA,GAAkBC,SAAU,CAAAC,MAAA,CAAOf,eAAiB,EAAA;IAAA;IAExDgB,UAAY,EAAA,IAAA;IAAA;IAEZC,mBAAqB,EAAA,IAAA;IAAA;IAErBC,gBAAgBC,OAA2B,EAAA;MACzCd,QAAA,CAASe,KAAKD,OAAO,CAAA;MACrBA,OAAA,CAAQE,OAAU,GAAA,IAAA;IACpB;EAAA,CACD,CAAA;EAED,MAAMC,SAAY,GAAAX,IAAA,CAAKC,OAAQ,CAAAvB,QAAA,EAAUG,QAAQ,CAAA;EACjD,MAAM+B,QAAW,GAAA,MAAMC,EAAG,CAAAC,QAAA,CAASH,SAAS,CAAA;EAC5C,MAAMI,cAAiB,GAAA,MAAMC,QAAS,CAAAC,aAAA,CAAcN,SAAS,CAAA;EAE7D,MAAMO,MAAO,CAAAlB,IAAA,CAAKmB,OAAQ,CAAAR,SAAS,CAAC,CAAA;EAE9B,MAAAS,YAAA,GAAe,MAAMC,4BAA6B,CAAA;IACtDC,aAAe,EAAApB,eAAA;IACfqB,QAAU,EAAAtC;EAAA,CACX,CAAA;EAEK,MAAAuC,IAAA,GAAO,CAACZ,QAAS,CAAAa,QAAA,CAAA,GAAY,GAAGL,YAAY,CAAE,CAAAM,IAAA,CAAK,MAAM,CAAA;EAE/D,MAAMb,EAAG,CAAAc,SAAA,CACPhB,SAAA,EACA,MAAMK,QAAS,CAAAY,MAAA,CAAOJ,IAAM,EAAA;IAC1B,GAAGT,cAAA;IACHc,QAAU,EAAAlB;EAAA,CACX,CAAA,CACH;EAGA/B,KAAA,CAAM6B,IAAK,CAAA;IACTqB,IAAM,EAAA,OAAA;IACN9B,IAAM,EAAAW;EAAA,CACP,CAAA;EAEM,OAAA;IAACT;IAAiBR;GAAQ;AACnC;"}
@@ -0,0 +1,68 @@
1
+ const LOG_LEVELS = {
2
+ error: "error",
3
+ info: "info",
4
+ off: "none",
5
+ warn: "warning"
6
+ };
7
+ function getExtractMessagesConfig(options) {
8
+ const {
9
+ rules
10
+ } = options;
11
+ function ruleToLogLevel(key, defaultLevel) {
12
+ const r = rules == null ? void 0 : rules[key];
13
+ return r ? LOG_LEVELS[r] : defaultLevel || "warning";
14
+ }
15
+ return {
16
+ compilerMessageReporting: {
17
+ default: {
18
+ logLevel: "warning"
19
+ }
20
+ },
21
+ extractorMessageReporting: {
22
+ default: {
23
+ logLevel: "warning",
24
+ addToApiReportFile: false
25
+ },
26
+ "ae-forgotten-export": {
27
+ logLevel: ruleToLogLevel("ae-forgotten-export", "error"),
28
+ addToApiReportFile: false
29
+ },
30
+ "ae-incompatible-release-tags": {
31
+ logLevel: ruleToLogLevel("ae-incompatible-release-tags", "error"),
32
+ addToApiReportFile: false
33
+ },
34
+ "ae-internal-missing-underscore": {
35
+ logLevel: ruleToLogLevel("ae-internal-missing-underscore"),
36
+ addToApiReportFile: false
37
+ },
38
+ "ae-missing-release-tag": {
39
+ logLevel: ruleToLogLevel("ae-missing-release-tag", "error"),
40
+ addToApiReportFile: false
41
+ },
42
+ "ae-wrong-input-file-type": {
43
+ logLevel: "none",
44
+ addToApiReportFile: false
45
+ }
46
+ },
47
+ tsdocMessageReporting: {
48
+ default: {
49
+ logLevel: "warning",
50
+ addToApiReportFile: false
51
+ },
52
+ "tsdoc-link-tag-unescaped-text": {
53
+ logLevel: ruleToLogLevel("tsdoc-link-tag-unescaped-text", "warning"),
54
+ addToApiReportFile: false
55
+ },
56
+ "tsdoc-undefined-tag": {
57
+ logLevel: ruleToLogLevel("tsdoc-undefined-tag", "error"),
58
+ addToApiReportFile: false
59
+ },
60
+ "tsdoc-unsupported-tag": {
61
+ logLevel: ruleToLogLevel("tsdoc-unsupported-tag", "none"),
62
+ addToApiReportFile: false
63
+ }
64
+ }
65
+ };
66
+ }
67
+ export { getExtractMessagesConfig };
68
+ //# sourceMappingURL=getExtractMessagesConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExtractMessagesConfig.js","sources":["../../../src/node/tasks/dts/getExtractMessagesConfig.ts"],"sourcesContent":["import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'\n\nimport {PkgConfigOptions, PkgRuleLevel} from '../../core'\n\nconst LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: 'error' as ExtractorLogLevel.Error,\n info: 'info' as ExtractorLogLevel.Info,\n off: 'none' as ExtractorLogLevel.None,\n warn: 'warning' as ExtractorLogLevel.Warning,\n}\n\n/** @internal */\nexport function getExtractMessagesConfig(options: {\n rules: NonNullable<PkgConfigOptions['extract']>['rules']\n}): IExtractorMessagesConfig {\n const {rules} = options\n\n function ruleToLogLevel(\n key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,\n defaultLevel?: ExtractorLogLevel,\n ) {\n const r = rules?.[key]\n\n return (r ? LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n },\n },\n\n extractorMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n logLevel: ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-internal-missing-underscore': {\n logLevel: ruleToLogLevel('ae-internal-missing-underscore'),\n addToApiReportFile: false,\n },\n\n 'ae-missing-release-tag': {\n logLevel: ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: 'none' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n },\n }\n}\n"],"names":["LOG_LEVELS","error","info","off","warn","getExtractMessagesConfig","options","rules","ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","default","logLevel","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting"],"mappings":"AAIA,MAAMA,UAAsD,GAAA;EAC1DC,KAAO,EAAA,OAAA;EACPC,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,MAAA;EACLC,IAAM,EAAA;AACR,CAAA;AAGO,SAASC,yBAAyBC,OAEZ,EAAA;EACrB,MAAA;IAACC;EAAS,CAAA,GAAAD,OAAA;EAEP,SAAAE,cAAAA,CACPC,KACAC,YACA,EAAA;IACA,MAAMC,IAAIJ,KAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAE,GAAA,CAAA;IAElB,OAAQE,CAAI,GAAAX,UAAA,CAAWW,CAAC,CAAA,GAAID,YAAgB,IAAA,SAAA;EAC9C;EAEO,OAAA;IACLE,wBAA0B,EAAA;MACxBC,OAAS,EAAA;QACPC,QAAU,EAAA;MACZ;IACF,CAAA;IAEAC,yBAA2B,EAAA;MACzBF,OAAS,EAAA;QACPC,QAAU,EAAA,SAAA;QACVE,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrBF,QAAA,EAAUN,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,8BAAgC,EAAA;QAC9BF,QAAA,EAAUN,cAAe,CAAA,8BAAA,EAAgC,OAA4B,CAAA;QACrFQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,gCAAkC,EAAA;QAChCF,QAAA,EAAUN,eAAe,gCAAgC,CAAA;QACzDQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,wBAA0B,EAAA;QACxBF,QAAA,EAAUN,cAAe,CAAA,wBAAA,EAA0B,OAA4B,CAAA;QAC/EQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,0BAA4B,EAAA;QAC1BF,QAAU,EAAA,MAAA;QACVE,kBAAoB,EAAA;MACtB;IACF,CAAA;IAEAC,qBAAuB,EAAA;MACrBJ,OAAS,EAAA;QACPC,QAAU,EAAA,SAAA;QACVE,kBAAoB,EAAA;MACtB,CAAA;MAEA,+BAAiC,EAAA;QAC/BF,QAAA,EAAUN,cAAe,CAAA,+BAAA,EAAiC,SAA8B,CAAA;QACxFQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrBF,QAAA,EAAUN,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,uBAAyB,EAAA;QACvBF,QAAA,EAAUN,cAAe,CAAA,uBAAA,EAAyB,MAA2B,CAAA;QAC7EQ,kBAAoB,EAAA;MACtB;IACF;EAAA,CACF;AACF;"}
@@ -0,0 +1,35 @@
1
+ import chalk from 'chalk';
2
+ import path from 'path';
3
+ import ts from 'typescript';
4
+ function printDiagnostic(options) {
5
+ const {
6
+ cwd,
7
+ logger,
8
+ diagnostic
9
+ } = options;
10
+ if (diagnostic.file && diagnostic.start) {
11
+ const {
12
+ line,
13
+ character
14
+ } = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
15
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
16
+ const file = path.relative(cwd, diagnostic.file.fileName);
17
+ const output = ["".concat(chalk.yellow(file), ":").concat(chalk.blue(line + 1), ":").concat(chalk.blue(character + 1), " - "), "".concat(chalk.gray("TS".concat(diagnostic.code, ":")), " ").concat(message)].join("");
18
+ if (diagnostic.category === ts.DiagnosticCategory.Error) {
19
+ logger.error(output);
20
+ }
21
+ if (diagnostic.category === ts.DiagnosticCategory.Warning) {
22
+ logger.warn(output);
23
+ }
24
+ if (diagnostic.category === ts.DiagnosticCategory.Message) {
25
+ logger.log(output);
26
+ }
27
+ if (diagnostic.category === ts.DiagnosticCategory.Suggestion) {
28
+ logger.log(output);
29
+ }
30
+ } else {
31
+ logger.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
32
+ }
33
+ }
34
+ export { printDiagnostic };
35
+ //# sourceMappingURL=printDiagnostic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printDiagnostic.js","sources":["../../../src/node/tasks/dts/printDiagnostic.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\nimport ts from 'typescript'\n\nimport {Logger} from '../../logger'\n\nexport function printDiagnostic(options: {\n cwd: string\n logger: Logger\n diagnostic: ts.Diagnostic\n}): void {\n const {cwd, logger, diagnostic} = options\n\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n const file = path.relative(cwd, diagnostic.file.fileName)\n\n const output = [\n `${chalk.yellow(file)}:${chalk.blue(line + 1)}:${chalk.blue(character + 1)} - `,\n `${chalk.gray(`TS${diagnostic.code}:`)} ${message}`,\n ].join('')\n\n if (diagnostic.category === ts.DiagnosticCategory.Error) {\n logger.error(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Warning) {\n logger.warn(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Message) {\n logger.log(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Suggestion) {\n logger.log(output)\n }\n } else {\n logger.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n}\n"],"names":["printDiagnostic","options","cwd","logger","diagnostic","file","start","line","character","ts","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","path","relative","fileName","output","concat","chalk","yellow","blue","gray","code","join","category","DiagnosticCategory","Error","error","Warning","warn","Message","log","Suggestion"],"mappings":";;;AAMO,SAASA,gBAAgBC,OAIvB,EAAA;EACP,MAAM;IAACC,GAAA;IAAKC,MAAQ;IAAAC;EAAA,CAAc,GAAAH,OAAA;EAE9B,IAAAG,UAAA,CAAWC,IAAQ,IAAAD,UAAA,CAAWE,KAAO,EAAA;IACjC,MAAA;MAACC;MAAMC;IAAS,CAAA,GAAIC,GAAGC,6BAA8B,CAAAN,UAAA,CAAWC,IAAM,EAAAD,UAAA,CAAWE,KAAK,CAAA;IAC5F,MAAMK,OAAU,GAAAF,EAAA,CAAGG,4BAA6B,CAAAR,UAAA,CAAWS,aAAa,IAAI,CAAA;IAE5E,MAAMR,OAAOS,IAAK,CAAAC,QAAA,CAASb,GAAK,EAAAE,UAAA,CAAWC,KAAKW,QAAQ,CAAA;IAExD,MAAMC,MAAS,GAAA,IAAAC,MAAA,CACVC,KAAM,CAAAC,MAAA,CAAOf,IAAI,CAAC,OAAAa,MAAA,CAAIC,KAAM,CAAAE,IAAA,CAAKd,IAAO,GAAA,CAAC,CAAC,OAAAW,MAAA,CAAIC,KAAA,CAAME,IAAK,CAAAb,SAAA,GAAY,CAAC,CAAC,aAAAU,MAAA,CACvEC,MAAMG,IAAK,MAAAJ,MAAA,CAAKd,WAAWmB,IAAI,MAAG,CAAC,OAAAL,MAAA,CAAIP,OAAO,EACnD,CAAEa,KAAK,EAAE,CAAA;IAET,IAAIpB,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBC,KAAO,EAAA;MACvDxB,MAAA,CAAOyB,MAAMX,MAAM,CAAA;IACrB;IAEA,IAAIb,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBG,OAAS,EAAA;MACzD1B,MAAA,CAAO2B,KAAKb,MAAM,CAAA;IACpB;IAEA,IAAIb,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBK,OAAS,EAAA;MACzD5B,MAAA,CAAO6B,IAAIf,MAAM,CAAA;IACnB;IAEA,IAAIb,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBO,UAAY,EAAA;MAC5D9B,MAAA,CAAO6B,IAAIf,MAAM,CAAA;IACnB;EAAA,CACK,MAAA;IACLd,MAAA,CAAO6B,IAAIvB,EAAG,CAAAG,4BAAA,CAA6BR,UAAW,CAAAS,WAAA,EAAa,IAAI,CAAC,CAAA;EAC1E;AACF;"}
@@ -0,0 +1,16 @@
1
+ import { dtsTask } from './dts/dtsTask.js';
2
+ import { dtsWatchTask } from './dts/dtsWatchTask.js';
3
+ import { nodeReexportCjsTask } from './node/reexportCjsTask.js';
4
+ import { rollupTask } from './rollup/rollupTask.js';
5
+ import { rollupWatchTask } from './rollup/rollupWatchTask.js';
6
+ const buildTaskHandlers = {
7
+ "build:dts": dtsTask,
8
+ "build:js": rollupTask,
9
+ "node:reexport-cjs": nodeReexportCjsTask
10
+ };
11
+ const watchTaskHandlers = {
12
+ "watch:dts": dtsWatchTask,
13
+ "watch:js": rollupWatchTask
14
+ };
15
+ export { buildTaskHandlers, dtsTask, dtsWatchTask, rollupTask, rollupWatchTask, watchTaskHandlers };
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/node/tasks/index.ts"],"sourcesContent":["import {dtsTask, dtsWatchTask} from './dts'\nimport {nodeReexportCjsTask} from './node/reexportCjsTask'\nimport {rollupTask, rollupWatchTask} from './rollup'\nimport {BuildTaskHandlers, WatchTaskHandlers} from './types'\n\nexport * from './dts'\nexport * from './rollup'\nexport * from './types'\n\n/** @internal */\nexport const buildTaskHandlers: BuildTaskHandlers = {\n 'build:dts': dtsTask,\n 'build:js': rollupTask,\n 'node:reexport-cjs': nodeReexportCjsTask,\n}\n\n/** @internal */\nexport const watchTaskHandlers: WatchTaskHandlers = {\n 'watch:dts': dtsWatchTask,\n 'watch:js': rollupWatchTask,\n}\n"],"names":["buildTaskHandlers","dtsTask","rollupTask","nodeReexportCjsTask","watchTaskHandlers","dtsWatchTask","rollupWatchTask"],"mappings":";;;;;AAUO,MAAMA,iBAAuC,GAAA;EAClD,WAAa,EAAAC,OAAA;EACb,UAAY,EAAAC,UAAA;EACZ,mBAAqB,EAAAC;AACvB,CAAA;AAGO,MAAMC,iBAAuC,GAAA;EAClD,WAAa,EAAAC,YAAA;EACb,UAAY,EAAAC;AACd,CAAA;"}
@@ -0,0 +1,52 @@
1
+ import chalk from 'chalk';
2
+ import { writeFile } from 'fs/promises';
3
+ import { mkdirp } from 'mkdirp';
4
+ import path from 'path';
5
+ import { from } from 'rxjs';
6
+ const nodeReexportCjsTask = {
7
+ name: (_ctx, task) => ["Re-export CommonJS module in ESM wrapper\u2026", " entries:", ...task.entries.map(entry => [" - ".concat(chalk.cyan(entry.importId), ": "), "".concat(chalk.yellow(entry.require), " ").concat(chalk.gray("\u2192"), " ").concat(chalk.yellow(entry.import))].join(""))].join("\n"),
8
+ exec: (ctx, task) => {
9
+ return from(exec(ctx, task));
10
+ },
11
+ complete: () => {},
12
+ error: (_ctx, _task, err) => {
13
+ console.error(err);
14
+ }
15
+ };
16
+ async function exec(ctx, task) {
17
+ const {
18
+ cwd
19
+ } = ctx;
20
+ for (const entry of task.entries) {
21
+ const sourcePath = path.resolve(cwd, entry.require);
22
+ const targetPath = path.resolve(cwd, entry.import);
23
+ const targetDir = path.dirname(targetPath);
24
+ await mkdirp(targetDir);
25
+ const mod = require(sourcePath);
26
+ let relativeImport = "./".concat(path.relative(targetDir, sourcePath));
27
+ if (relativeImport.startsWith("./.")) {
28
+ relativeImport = relativeImport.slice(2);
29
+ }
30
+ const code = compileESMWrapper(mod, relativeImport);
31
+ await writeFile(targetPath, code, "utf8");
32
+ }
33
+ }
34
+ function compileESMWrapper(mod, relativeImport) {
35
+ const keys = Object.keys(mod).filter(k => k !== "__esModule");
36
+ let code = "import cjs from '".concat(relativeImport, "';\n");
37
+ if (keys.length) {
38
+ code += "\n";
39
+ code += keys.filter(k => mod.__esModule ? k !== "default" : true).map(k => "export const ".concat(k, " = cjs.").concat(k, ";\n")).join("");
40
+ }
41
+ code += "\n";
42
+ if (mod.__esModule) {
43
+ if ("default" in mod) {
44
+ code += "export default cjs.default;\n";
45
+ }
46
+ } else {
47
+ code += "export default cjs;\n";
48
+ }
49
+ return code;
50
+ }
51
+ export { nodeReexportCjsTask };
52
+ //# sourceMappingURL=reexportCjsTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reexportCjsTask.js","sources":["../../../src/node/tasks/node/reexportCjsTask.ts"],"sourcesContent":["import chalk from 'chalk'\nimport {writeFile} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport path from 'path'\nimport {from} from 'rxjs'\n\nimport {BuildContext} from '../../core'\nimport {NodeReExportFromCJSTask, TaskHandler} from '../types'\n\n/** @internal */\nexport const nodeReexportCjsTask: TaskHandler<NodeReExportFromCJSTask> = {\n name: (_ctx, task) =>\n [\n `Re-export CommonJS module in ESM wrapper…`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.require)} ${chalk.gray('→')} ${chalk.yellow(entry.import)}`,\n ].join(''),\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return from(exec(ctx, task))\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n // eslint-disable-next-line no-console\n console.error(err)\n },\n}\n\nasync function exec(ctx: BuildContext, task: NodeReExportFromCJSTask) {\n const {cwd} = ctx\n\n for (const entry of task.entries) {\n const sourcePath = path.resolve(cwd, entry.require)\n const targetPath = path.resolve(cwd, entry.import)\n const targetDir = path.dirname(targetPath)\n\n await mkdirp(targetDir)\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(sourcePath)\n\n let relativeImport = `./${path.relative(targetDir, sourcePath)}`\n\n // Strip leading \"./\" from relative import\n if (relativeImport.startsWith('./.')) {\n relativeImport = relativeImport.slice(2)\n }\n\n const code = compileESMWrapper(mod, relativeImport)\n\n await writeFile(targetPath, code, 'utf8')\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction compileESMWrapper(mod: any, relativeImport: string) {\n const keys = Object.keys(mod).filter((k) => k !== '__esModule')\n\n let code = `import cjs from '${relativeImport}';\\n`\n\n if (keys.length) {\n code += `\\n`\n code += keys\n .filter((k) => (mod.__esModule ? k !== 'default' : true))\n .map((k) => `export const ${k} = cjs.${k};\\n`)\n .join('')\n }\n\n code += `\\n`\n\n if (mod.__esModule) {\n // If there is no default export, we shouldn't add it as it'll be undefined\n if ('default' in mod) {\n code += `export default cjs.default;\\n`\n }\n } else {\n code += `export default cjs;\\n`\n }\n\n return code\n}\n"],"names":["nodeReexportCjsTask","name","_ctx","task","entries","map","entry","concat","chalk","cyan","importId","yellow","require","gray","import","join","exec","ctx","from","complete","error","_task","err","console","cwd","sourcePath","path","resolve","targetPath","targetDir","dirname","mkdirp","mod","relativeImport","relative","startsWith","slice","code","compileESMWrapper","writeFile","keys","Object","filter","k","length","__esModule"],"mappings":";;;;;AAUO,MAAMA,mBAA4D,GAAA;EACvEC,IAAA,EAAMA,CAACC,IAAA,EAAMC,IACX,KAAA,iEAGE,GAAGA,KAAKC,OAAQ,CAAAC,GAAA,CAAKC,KACnB,IAAA,UAAAC,MAAA,CACWC,KAAA,CAAMC,IAAK,CAAAH,KAAA,CAAMI,QAAQ,CAAC,YAAAH,MAAA,CAChCC,KAAM,CAAAG,MAAA,CAAOL,KAAM,CAAAM,OAAO,CAAC,OAAAL,MAAA,CAAIC,KAAA,CAAMK,IAAK,CAAA,QAAG,CAAC,OAAAN,MAAA,CAAIC,KAAA,CAAMG,MAAO,CAAAL,KAAA,CAAMQ,MAAM,CAAC,EACjF,CAAEC,KAAK,EAAE,CACX,CAAA,CACF,CAAEA,KAAK,IAAI,CAAA;EACbC,IAAA,EAAMA,CAACC,GAAA,EAAKd,IAAS,KAAA;IACnB,OAAOe,IAAK,CAAAF,IAAA,CAAKC,GAAK,EAAAd,IAAI,CAAC,CAAA;EAC7B,CAAA;EACAgB,UAAUA,CAAA,KAAM,CAEhB,CAAA;EACAC,KAAO,EAAAA,CAAClB,IAAM,EAAAmB,KAAA,EAAOC,GAAQ,KAAA;IAE3BC,OAAA,CAAQH,MAAME,GAAG,CAAA;EACnB;AACF,CAAA;AAEA,eAAeN,IAAAA,CAAKC,KAAmBd,IAA+B,EAAA;EAC9D,MAAA;IAACqB;EAAO,CAAA,GAAAP,GAAA;EAEH,KAAA,MAAAX,KAAA,IAASH,KAAKC,OAAS,EAAA;IAChC,MAAMqB,UAAa,GAAAC,IAAA,CAAKC,OAAQ,CAAAH,GAAA,EAAKlB,MAAMM,OAAO,CAAA;IAClD,MAAMgB,UAAa,GAAAF,IAAA,CAAKC,OAAQ,CAAAH,GAAA,EAAKlB,MAAMQ,MAAM,CAAA;IAC3C,MAAAe,SAAA,GAAYH,IAAK,CAAAI,OAAA,CAAQF,UAAU,CAAA;IAEzC,MAAMG,OAAOF,SAAS,CAAA;IAGhB,MAAAG,GAAA,GAAMpB,QAAQa,UAAU,CAAA;IAE9B,IAAIQ,6BAAsBP,IAAA,CAAKQ,QAAS,CAAAL,SAAA,EAAWJ,UAAU,CAAC,CAAA;IAG1D,IAAAQ,cAAA,CAAeE,UAAW,CAAA,KAAK,CAAG,EAAA;MACnBF,cAAA,GAAAA,cAAA,CAAeG,MAAM,CAAC,CAAA;IACzC;IAEM,MAAAC,IAAA,GAAOC,iBAAkB,CAAAN,GAAA,EAAKC,cAAc,CAAA;IAE5C,MAAAM,SAAA,CAAUX,UAAY,EAAAS,IAAA,EAAM,MAAM,CAAA;EAC1C;AACF;AAGA,SAASC,iBAAAA,CAAkBN,KAAUC,cAAwB,EAAA;EACrD,MAAAO,IAAA,GAAOC,OAAOD,IAAK,CAAAR,GAAG,EAAEU,MAAO,CAACC,CAAM,IAAAA,CAAA,KAAM,YAAY,CAAA;EAE1D,IAAAN,IAAA,uBAAA9B,MAAA,CAA2B0B,cAAc,SAAA;EAE7C,IAAIO,KAAKI,MAAQ,EAAA;IACPP,IAAA,QAAA;IACRA,IAAA,IAAQG,KACLE,MAAO,CAACC,CAAO,IAAAX,GAAA,CAAIa,aAAaF,CAAM,KAAA,SAAA,GAAY,IAAK,CAAA,CACvDtC,IAAKsC,CAAA,oBAAApC,MAAA,CAAsBoC,CAAC,aAAApC,MAAA,CAAUoC,CAAC,QAAK,CAAA,CAC5C5B,KAAK,EAAE,CAAA;EACZ;EAEQsB,IAAA,QAAA;EAER,IAAIL,IAAIa,UAAY,EAAA;IAElB,IAAI,aAAab,GAAK,EAAA;MACZK,IAAA,mCAAA;IACV;EAAA,CACK,MAAA;IACGA,IAAA,2BAAA;EACV;EAEO,OAAAA,IAAA;AACT;"}