@xylabs/ts-scripts-yarn3 6.5.17 → 7.0.0-rc.1

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 (60) hide show
  1. package/dist/actions/deplint/checkPackage/checkPackage.mjs +7 -25
  2. package/dist/actions/deplint/checkPackage/checkPackage.mjs.map +1 -1
  3. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs +2 -13
  4. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs.map +1 -1
  5. package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs +1 -1
  6. package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs.map +1 -1
  7. package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs +1 -1
  8. package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs.map +1 -1
  9. package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs +1 -1
  10. package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs.map +1 -1
  11. package/dist/actions/deplint/checkPackage/index.mjs +7 -25
  12. package/dist/actions/deplint/checkPackage/index.mjs.map +1 -1
  13. package/dist/actions/deplint/deplint.mjs +7 -25
  14. package/dist/actions/deplint/deplint.mjs.map +1 -1
  15. package/dist/actions/deplint/getExternalImportsFromFiles.mjs +2 -9
  16. package/dist/actions/deplint/getExternalImportsFromFiles.mjs.map +1 -1
  17. package/dist/actions/deplint/index.mjs +7 -25
  18. package/dist/actions/deplint/index.mjs.map +1 -1
  19. package/dist/actions/index.mjs +155 -129
  20. package/dist/actions/index.mjs.map +1 -1
  21. package/dist/actions/package/compile/compile.mjs +82 -91
  22. package/dist/actions/package/compile/compile.mjs.map +1 -1
  23. package/dist/actions/package/compile/index.mjs +136 -92
  24. package/dist/actions/package/compile/index.mjs.map +1 -1
  25. package/dist/actions/package/compile/packageCompileTscTypes.mjs +58 -3
  26. package/dist/actions/package/compile/packageCompileTscTypes.mjs.map +1 -1
  27. package/dist/actions/package/compile/packageCompileTsup.mjs +92 -120
  28. package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -1
  29. package/dist/actions/package/index.mjs +142 -98
  30. package/dist/actions/package/index.mjs.map +1 -1
  31. package/dist/actions/package/recompile.mjs +82 -91
  32. package/dist/actions/package/recompile.mjs.map +1 -1
  33. package/dist/bin/package/build-only.mjs +84 -93
  34. package/dist/bin/package/build-only.mjs.map +1 -1
  35. package/dist/bin/package/build.mjs +84 -93
  36. package/dist/bin/package/build.mjs.map +1 -1
  37. package/dist/bin/package/compile-only.mjs +84 -93
  38. package/dist/bin/package/compile-only.mjs.map +1 -1
  39. package/dist/bin/package/compile-tsup.mjs +97 -125
  40. package/dist/bin/package/compile-tsup.mjs.map +1 -1
  41. package/dist/bin/package/compile.mjs +84 -93
  42. package/dist/bin/package/compile.mjs.map +1 -1
  43. package/dist/bin/package/recompile.mjs +84 -93
  44. package/dist/bin/package/recompile.mjs.map +1 -1
  45. package/dist/bin/xy.mjs +7 -25
  46. package/dist/bin/xy.mjs.map +1 -1
  47. package/dist/index.d.ts +2 -4
  48. package/dist/index.mjs +155 -129
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/xy/index.mjs +7 -25
  51. package/dist/xy/index.mjs.map +1 -1
  52. package/dist/xy/xy.mjs +7 -25
  53. package/dist/xy/xy.mjs.map +1 -1
  54. package/dist/xy/xyLintCommands.mjs +7 -25
  55. package/dist/xy/xyLintCommands.mjs.map +1 -1
  56. package/package.json +6 -5
  57. package/dist/actions/package/compile/compileTypes.mjs +0 -138
  58. package/dist/actions/package/compile/compileTypes.mjs.map +0 -1
  59. package/dist/bin/package/compile-types.mjs +0 -150
  60. package/dist/bin/package/compile-types.mjs.map +0 -1
@@ -1,26 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/bin/package/compile-tsup.ts
4
- import chalk4 from "chalk";
5
-
6
- // src/lib/loadConfig.ts
7
- import chalk from "chalk";
8
- import { cosmiconfig } from "cosmiconfig";
9
- import { TypeScriptLoader } from "cosmiconfig-typescript-loader";
10
- import deepmerge from "deepmerge";
11
- var config;
12
- var loadConfig = async (params) => {
13
- if (config) {
14
- return deepmerge(config, params ?? {});
15
- }
16
- const cosmicConfigResult = await cosmiconfig("xy", { cache: true, loaders: { ".ts": TypeScriptLoader() } }).search();
17
- config = cosmicConfigResult?.config;
18
- const configFilePath = cosmicConfigResult?.filepath;
19
- if (configFilePath) {
20
- console.log(chalk.gray(`Loading config from ${configFilePath}`));
21
- }
22
- return deepmerge(config, params ?? {});
23
- };
4
+ import chalk2 from "chalk";
24
5
 
25
6
  // src/actions/package/compile/packageCompileTsup.ts
26
7
  import { build, defineConfig } from "tsup";
@@ -52,9 +33,35 @@ var buildEntries = (folder, entryMode = "single", excludeSpecAndStories = true,
52
33
  return entries;
53
34
  };
54
35
 
36
+ // src/actions/package/compile/deepMerge.ts
37
+ function deepMerge(target, source) {
38
+ if (!source || typeof source !== "object") return target;
39
+ for (const key of Object.keys(source)) {
40
+ if (typeof source[key] === "object" && source[key] !== null && !Array.isArray(source[key])) {
41
+ if (!target[key] || typeof target[key] !== "object") {
42
+ target[key] = {};
43
+ }
44
+ deepMerge(target[key], source[key]);
45
+ } else {
46
+ target[key] = source[key];
47
+ }
48
+ }
49
+ return target;
50
+ }
51
+ function deepMergeObjects(objects) {
52
+ const result = {};
53
+ for (const obj of objects) {
54
+ deepMerge(result, obj);
55
+ }
56
+ return result;
57
+ }
58
+
55
59
  // src/actions/package/compile/packageCompileTscTypes.ts
60
+ import { rm, writeFileSync } from "fs";
61
+ import path from "path";
56
62
  import { cwd } from "process";
57
- import chalk2 from "chalk";
63
+ import { Extractor, ExtractorConfig } from "@microsoft/api-extractor";
64
+ import chalk from "chalk";
58
65
  import { createProgramFromConfig } from "tsc-prog";
59
66
  import {
60
67
  DiagnosticCategory,
@@ -65,38 +72,45 @@ import {
65
72
 
66
73
  // src/actions/package/compile/getCompilerOptions.ts
67
74
  import { createRequire } from "module";
68
- import deepmerge2 from "deepmerge";
75
+ import deepmerge from "deepmerge";
69
76
  import {
70
77
  findConfigFile,
71
78
  readConfigFile,
72
79
  sys
73
80
  } from "typescript";
74
- var getNested = (config2) => {
75
- if (config2.extends) {
81
+ var getNested = (config) => {
82
+ if (config.extends) {
76
83
  const require2 = createRequire(import.meta.url);
77
- const opts = require2(config2.extends);
78
- return deepmerge2(getNested(opts), config2.compilerOptions ?? {});
84
+ const opts = require2(config.extends);
85
+ return deepmerge(getNested(opts), config.compilerOptions ?? {});
79
86
  }
80
- return config2.compilerOptions;
87
+ return config.compilerOptions;
81
88
  };
82
89
  var getCompilerOptionsJSONFollowExtends = (filename) => {
83
- const config2 = readConfigFile(filename, sys.readFile).config;
84
- return getNested(config2);
90
+ const config = readConfigFile(filename, sys.readFile).config;
91
+ return getNested(config);
85
92
  };
86
93
  var getCompilerOptions = (options = {}, tsconfig = "tsconfig.json") => {
87
94
  const configFileName = findConfigFile("./", sys.fileExists, tsconfig);
88
95
  const configFileCompilerOptions = (configFileName ? getCompilerOptionsJSONFollowExtends(configFileName) : void 0) ?? {};
89
- return deepmerge2(configFileCompilerOptions, options);
96
+ return deepmerge(configFileCompilerOptions, options);
90
97
  };
91
98
 
92
99
  // src/actions/package/compile/packageCompileTscTypes.ts
93
- var packageCompileTscTypes = (folder = "src", config2 = {}, compilerOptionsParam) => {
100
+ var packageCompileTscTypes = (entries, outDir, folder = "src", config = {}, compilerOptionsParam) => {
94
101
  const pkg = process.env.INIT_CWD ?? cwd();
95
- const verbose = config2?.verbose ?? false;
102
+ const verbose = config?.verbose ?? false;
103
+ const tempDir = `${pkg}/.xylabs/ts-scripts-yarn3/compile/tsc/types/${Date.now()}`;
104
+ rm(tempDir, { force: true, recursive: true }, (err) => {
105
+ if (err) {
106
+ console.error(chalk.red(`Error removing temporary directory: ${tempDir}`), err);
107
+ return 1;
108
+ }
109
+ });
96
110
  const compilerOptions = {
97
111
  ...getCompilerOptions({
98
112
  emitDeclarationOnly: true,
99
- outDir: config2.compile?.tsup?.options?.outDir ?? "dist/types",
113
+ outDir: tempDir,
100
114
  removeComments: false,
101
115
  skipDefaultLibCheck: true,
102
116
  skipLibCheck: true,
@@ -109,7 +123,7 @@ var packageCompileTscTypes = (folder = "src", config2 = {}, compilerOptionsParam
109
123
  const validTsExt = [".ts", ".tsx", ".d.ts", ".cts", ".d.cts", ".mts", ".d.mts"];
110
124
  const excludes = [".stories.", ".spec.", "/stories/", "/spec/"];
111
125
  const files = buildEntries(folder, "all", verbose).filter((file) => validTsExt.find((ext) => file.endsWith(ext)) && !excludes.some((exclude) => file.includes(exclude)));
112
- console.log(chalk2.green(`Compiling Types ${pkg}: ${files.length}`));
126
+ console.log(chalk.green(`Compiling Types ${pkg}: ${files.length}`));
113
127
  if (files.length > 0) {
114
128
  const program = createProgramFromConfig({
115
129
  basePath: pkg ?? cwd(),
@@ -130,90 +144,52 @@ var packageCompileTscTypes = (folder = "src", config2 = {}, compilerOptionsParam
130
144
  console.error(formattedDiagnostics);
131
145
  }
132
146
  program.emit();
133
- return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0);
134
- }
135
- return 0;
136
- };
137
-
138
- // src/actions/package/compile/compileTypes.ts
139
- var packageCompileTypes = async (inConfig = {}) => {
140
- const config2 = await loadConfig(inConfig);
141
- return packageCompileTscTypes(void 0, config2);
142
- };
143
-
144
- // src/actions/package/compile/deepMerge.ts
145
- function deepMerge(target, source) {
146
- if (!source || typeof source !== "object") return target;
147
- for (const key of Object.keys(source)) {
148
- if (typeof source[key] === "object" && source[key] !== null && !Array.isArray(source[key])) {
149
- if (!target[key] || typeof target[key] !== "object") {
150
- target[key] = {};
151
- }
152
- deepMerge(target[key], source[key]);
153
- } else {
154
- target[key] = source[key];
147
+ const tscErrorCount = diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0);
148
+ if (tscErrorCount > 0) {
149
+ return tscErrorCount;
155
150
  }
156
- }
157
- return target;
158
- }
159
- function deepMergeObjects(objects) {
160
- const result = {};
161
- for (const obj of objects) {
162
- deepMerge(result, obj);
163
- }
164
- return result;
165
- }
166
-
167
- // src/actions/package/compile/packageCompileTsc.ts
168
- import { cwd as cwd2 } from "process";
169
- import chalk3 from "chalk";
170
- import { createProgramFromConfig as createProgramFromConfig2 } from "tsc-prog";
171
- import {
172
- DiagnosticCategory as DiagnosticCategory2,
173
- formatDiagnosticsWithColorAndContext as formatDiagnosticsWithColorAndContext2,
174
- getPreEmitDiagnostics as getPreEmitDiagnostics2,
175
- sys as sys3
176
- } from "typescript";
177
- var packageCompileTsc = (folder = "src", config2 = {}, compilerOptionsParam) => {
178
- const pkg = process.env.INIT_CWD ?? cwd2();
179
- const verbose = config2?.verbose ?? false;
180
- const compilerOptions = {
181
- ...getCompilerOptions({
182
- outDir: "dist/types",
183
- removeComments: false,
184
- skipDefaultLibCheck: true,
185
- skipLibCheck: true,
186
- sourceMap: false
187
- }),
188
- ...compilerOptionsParam,
189
- emitDeclarationOnly: false,
190
- noEmit: true
191
- };
192
- const validTsExt = [".ts", ".tsx", ".d.ts", ".cts", ".d.cts", ".mts", ".d.mts"];
193
- const includes = [".stories.", ".spec.", ".d.ts", ".d.cts", ".d.mts"];
194
- const files = buildEntries(folder, "all", verbose).filter((file) => validTsExt.find((ext) => file.endsWith(ext)) && includes.find((include) => file.includes(include)));
195
- console.log(chalk3.green(`Compiling Files ${pkg}: ${files.length}`));
196
- if (files.length > 0) {
197
- const program = createProgramFromConfig2({
198
- basePath: pkg ?? cwd2(),
199
- compilerOptions,
200
- exclude: ["dist", "docs"],
201
- files
202
- });
203
- const diagnostics = getPreEmitDiagnostics2(program);
204
- if (diagnostics.length > 0) {
205
- const formattedDiagnostics = formatDiagnosticsWithColorAndContext2(
206
- diagnostics,
207
- {
208
- getCanonicalFileName: (fileName) => fileName,
209
- getCurrentDirectory: () => folder,
210
- getNewLine: () => sys3.newLine
211
- }
212
- );
213
- console.error(formattedDiagnostics);
151
+ const entryNameToTypeName = (entry) => {
152
+ const splitEntryName = entry.split(".");
153
+ const newEntryExtension = "d." + splitEntryName.at(-1);
154
+ return [...splitEntryName.slice(0, -1), newEntryExtension].join(".");
155
+ };
156
+ const entryNames = entries.map((entry) => entry.split(`${folder}/`).at(-1) ?? entry);
157
+ for (const entry of entryNames) {
158
+ const entryTypeName = entryNameToTypeName(entry);
159
+ const configObject = {
160
+ projectFolder: ".",
161
+ mainEntryPointFilePath: path.resolve([tempDir, entryTypeName].join("/")),
162
+ bundledPackages: [],
163
+ compiler: { tsconfigFilePath: path.resolve(`${pkg}/tsconfig.json`) },
164
+ dtsRollup: {
165
+ enabled: true,
166
+ untrimmedFilePath: path.resolve(`${outDir}/${entryTypeName}`)
167
+ },
168
+ apiReport: { enabled: false },
169
+ docModel: { enabled: false },
170
+ tsdocMetadata: { enabled: false }
171
+ };
172
+ writeFileSync(`${tempDir}/api-extractor.json`, JSON.stringify(configObject, null, 2));
173
+ const extractorConfig = ExtractorConfig.prepare({
174
+ configObject,
175
+ configObjectFullPath: path.resolve(`${tempDir}/api-extractor.json`),
176
+ // just a virtual label, doesn't have to exist
177
+ packageJsonFullPath: path.resolve("package.json")
178
+ });
179
+ const extractorResult = Extractor.invoke(extractorConfig, {
180
+ localBuild: true,
181
+ showVerboseMessages: true
182
+ });
183
+ if (extractorResult.succeeded) {
184
+ console.log("API Extractor completed successfully");
185
+ process.exitCode = 0;
186
+ } else {
187
+ console.error(
188
+ `API Extractor completed with ${extractorResult.errorCount} errors and ${extractorResult.warningCount} warnings`
189
+ );
190
+ process.exitCode = 1;
191
+ }
214
192
  }
215
- program.emit();
216
- return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory2.Error ? 1 : 0), 0);
217
193
  }
218
194
  return 0;
219
195
  };
@@ -252,6 +228,7 @@ var compileFolder = async (folder, entryMode = "single", options, verbose) => {
252
228
  if (verbose) {
253
229
  console.log(`TSUP:build:stop [${folder}]`);
254
230
  }
231
+ packageCompileTscTypes(entry, outDir);
255
232
  return 0;
256
233
  };
257
234
  var tsupOptions = (options = []) => {
@@ -275,9 +252,9 @@ var tsupOptions = (options = []) => {
275
252
  };
276
253
  return deepMergeObjects([standardOptions, ...options]);
277
254
  };
278
- var packageCompileTsup = async (config2) => {
279
- const compile = config2?.compile;
280
- const verbose = config2?.verbose ?? false;
255
+ var packageCompileTsup = async (config) => {
256
+ const compile = config?.compile;
257
+ const verbose = config?.verbose ?? false;
281
258
  if (verbose) {
282
259
  console.log(`Compiling with TSUP [Depth: ${compile?.depth}]`);
283
260
  }
@@ -287,11 +264,6 @@ var packageCompileTsup = async (config2) => {
287
264
  if (verbose) {
288
265
  console.log("Calling packageCompileTscTypes");
289
266
  }
290
- let errors = await packageCompileTypes(config2);
291
- errors = errors + packageCompileTsc(void 0, config2);
292
- if (errors > 0) {
293
- return errors;
294
- }
295
267
  return (await Promise.all(
296
268
  Object.entries(compileForNode).map(async ([folder, options]) => {
297
269
  const optionsObject = typeof options === "object" ? options : {};
@@ -345,7 +317,7 @@ var packageCompileTsup = async (config2) => {
345
317
 
346
318
  // src/bin/package/compile-tsup.ts
347
319
  packageCompileTsup({ verbose: true }).then((value) => process.exitCode = value).catch((reason) => {
348
- console.error(chalk4.red(reason));
320
+ console.error(chalk2.red(reason));
349
321
  process.exitCode = 1;
350
322
  });
351
323
  //# sourceMappingURL=compile-tsup.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/bin/package/compile-tsup.ts","../../../src/lib/loadConfig.ts","../../../src/actions/package/compile/packageCompileTsup.ts","../../../src/actions/package/compile/inputs.ts","../../../src/actions/package/compile/buildEntries.ts","../../../src/actions/package/compile/packageCompileTscTypes.ts","../../../src/actions/package/compile/getCompilerOptions.ts","../../../src/actions/package/compile/compileTypes.ts","../../../src/actions/package/compile/deepMerge.ts","../../../src/actions/package/compile/packageCompileTsc.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageCompileTsup } from '../../actions/index.ts'\n\npackageCompileTsup({ verbose: true })\n .then(value => (process.exitCode = value))\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exitCode = 1\n })\n","import chalk from 'chalk'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { TypeScriptLoader } from 'cosmiconfig-typescript-loader'\nimport deepmerge from 'deepmerge'\n\nlet config: Record<string, unknown>\n\nexport const loadConfig = async <T extends object>(params?: T): Promise<T> => {\n if (config) {\n return deepmerge(config, params ?? {}) as T\n }\n\n const cosmicConfigResult = await cosmiconfig('xy', { cache: true, loaders: { '.ts': TypeScriptLoader() } }).search()\n config = cosmicConfigResult?.config\n const configFilePath = cosmicConfigResult?.filepath\n if (configFilePath) {\n console.log(chalk.gray(`Loading config from ${configFilePath}`))\n }\n return deepmerge(config, params ?? {}) as T\n}\n","import type { Loader } from 'esbuild'\nimport type { Options } from 'tsup'\nimport { build, defineConfig } from 'tsup'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { packageCompileTypes } from './compileTypes.ts'\nimport { deepMergeObjects } from './deepMerge.ts'\nimport { packageCompileTsc } from './packageCompileTsc.ts'\nimport type { EntryMode, XyTsupConfig } from './XyConfig.ts'\n\nconst compileFolder = async (\n folder: string,\n entryMode: EntryMode = 'single',\n options?: Options,\n verbose?: boolean,\n): Promise<number> => {\n const outDir = options?.outDir ?? 'dist'\n\n if (verbose) {\n console.log(`compileFolder [${folder}]`)\n }\n\n const entry = buildEntries(folder, entryMode)\n const optionsResult = defineConfig({\n bundle: true,\n cjsInterop: true,\n clean: true,\n dts: false,\n entry,\n format: ['esm'],\n outDir,\n silent: true,\n sourcemap: true,\n splitting: false,\n tsconfig: 'tsconfig.json',\n ...options,\n })\n const optionsList = (\n await Promise.all(\n (Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap<Promise<Options[]>>(async (options) => {\n const result = typeof options === 'function' ? await options({}) : [options]\n return Array.isArray(result) ? result : [result]\n }),\n )\n ).flat()\n\n if (verbose) {\n console.log(`TSUP:build:start [${folder}]`)\n }\n\n await Promise.all(optionsList.map(options => build(options)))\n\n if (verbose) {\n console.log(`TSUP:build:stop [${folder}]`)\n }\n\n return 0\n}\n\nexport const tsupOptions = (options: Options[] = []): Options => {\n const standardLoaders: Record<string, Loader> = {\n '.gif': 'copy', '.html': 'copy', '.jpg': 'copy', '.json': 'json', '.png': 'copy', '.svg': 'copy', '.webp': 'copy',\n }\n\n const standardOptions: Options = {\n bundle: true,\n format: ['esm'],\n loader: standardLoaders,\n outExtension: ({ format }) => (format === 'esm' ? { js: '.mjs' } : { js: '.cjs' }),\n skipNodeModulesBundle: true,\n sourcemap: true,\n target: 'esnext',\n }\n\n return deepMergeObjects([standardOptions, ...options])\n}\n\nexport const packageCompileTsup = async (config?: XyTsupConfig) => {\n const compile = config?.compile\n const verbose = config?.verbose ?? false\n if (verbose) {\n console.log(`Compiling with TSUP [Depth: ${compile?.depth}]`)\n }\n\n const compileForNode = compile?.node ?? { src: {} }\n const compileForBrowser = compile?.browser ?? { src: {} }\n const compileForNeutral = compile?.neutral ?? { src: {} }\n\n if (verbose) {\n console.log('Calling packageCompileTscTypes')\n }\n\n let errors = await packageCompileTypes(config)\n errors = errors + packageCompileTsc(undefined, config)\n if (errors > 0) {\n return errors\n }\n\n return (\n (\n await Promise.all(\n Object.entries(compileForNode).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.node?.esbuildOptions === 'object' ? compile?.node?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'node', outDir: optionsObject.outDir ?? 'dist/node' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForBrowser).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === 'object' ? compile?.browser?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'browser', outDir: optionsObject.outDir ?? 'dist/browser' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForNeutral).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === 'object' ? compile?.neutral?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'neutral', outDir: optionsObject.outDir ?? 'dist/neutral' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + 0\n )\n}\n","import { glob } from 'glob'\n\nexport const getAllInputs = (folder: string) => {\n /* tsup wants posix paths */\n return glob.sync(`${folder}/**/*.*`, { posix: true })\n}\n","import { getAllInputs } from './inputs.ts'\nimport type { EntryMode } from './XyConfig.ts'\n\nexport const buildEntries = (folder: string, entryMode: EntryMode = 'single', excludeSpecAndStories = true, verbose = false) => {\n let entries: string[] = []\n switch (entryMode) {\n case 'platform': {\n entries = [`${folder}/index-node.ts`, `${folder}/index-browser.ts`]\n break\n }\n case 'all': {\n entries = excludeSpecAndStories ? getAllInputs(folder).filter(entry => !entry.includes('.spec.') && !entry.includes('.stories.')) : getAllInputs(folder)\n break\n }\n default: {\n entries = [`${folder}/index.ts`]\n break\n }\n }\n if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`)\n return entries\n}\n","import { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { getCompilerOptions } from './getCompilerOptions.ts'\nimport type { XyConfig, XyTsupConfig } from './XyConfig.ts'\n\nexport const packageCompileTscTypes = (\n folder: string = 'src',\n config: XyConfig = {},\n compilerOptionsParam?: CompilerOptions,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n const verbose = config?.verbose ?? false\n\n const compilerOptions = {\n ...(getCompilerOptions({\n emitDeclarationOnly: true,\n outDir: (config as XyTsupConfig).compile?.tsup?.options?.outDir ?? 'dist/types',\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n emitDeclarationOnly: true,\n noEmit: false,\n } as TsConfigCompilerOptions\n\n const validTsExt = ['.ts', '.tsx', '.d.ts', '.cts', '.d.cts', '.mts', '.d.mts']\n const excludes = ['.stories.', '.spec.', '/stories/', '/spec/']\n\n // calling all here since the types do not get rolled up\n const files = buildEntries(folder, 'all', verbose)\n .filter(file => validTsExt.find(ext => file.endsWith(ext)) && !(excludes.some(exclude => file.includes(exclude))))\n\n console.log(chalk.green(`Compiling Types ${pkg}: ${files.length}`))\n\n if (files.length > 0) {\n const program = createProgramFromConfig({\n basePath: pkg ?? cwd(),\n compilerOptions,\n exclude: ['build', 'dist', 'docs', '**/*.spec.*', '**/*.stories.*', 'src/**/spec/**/*'],\n files,\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => folder,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n }\n return 0\n}\n","import { createRequire } from 'node:module'\n\nimport deepmerge from 'deepmerge'\nimport type { TsConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n findConfigFile, readConfigFile, sys,\n} from 'typescript'\n\nconst getNested = (config: TsConfig): CompilerOptions => {\n if (config.extends) {\n const require = createRequire(import.meta.url)\n const opts = require(config.extends)\n return deepmerge(getNested(opts), config.compilerOptions ?? {}) as CompilerOptions\n }\n\n return config.compilerOptions as CompilerOptions\n}\n\nconst getCompilerOptionsJSONFollowExtends = (filename: string): CompilerOptions => {\n const config = readConfigFile(filename, sys.readFile).config\n return getNested(config)\n}\n\nexport const getCompilerOptions = (options: CompilerOptions = {}, tsconfig: string = 'tsconfig.json'): CompilerOptions => {\n const configFileName = findConfigFile('./', sys.fileExists, tsconfig)\n const configFileCompilerOptions = (configFileName ? getCompilerOptionsJSONFollowExtends(configFileName) : undefined) ?? {}\n\n return deepmerge(configFileCompilerOptions, options)\n}\n","import { loadConfig } from '../../../lib/index.ts'\nimport { packageCompileTscTypes } from './packageCompileTscTypes.ts'\nimport type { XyConfig, XyTscConfig } from './XyConfig.ts'\n\nexport const packageCompileTypes = async (inConfig: XyConfig = {}): Promise<number> => {\n const config = await loadConfig(inConfig)\n\n return packageCompileTscTypes(undefined, config as XyTscConfig)\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = Record<any, any>\n\nfunction deepMerge<T extends AnyObject>(target: AnyObject, source: AnyObject): T {\n if (!source || typeof source !== 'object') return target\n\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object'\n && source[key] !== null\n && !Array.isArray(source[key])\n ) {\n // Recursively merge nested objects\n if (!target[key] || typeof target[key] !== 'object') {\n target[key] = {} as T[typeof key]\n }\n deepMerge(target[key], source[key])\n } else {\n // Overwrite with non-object values\n target[key] = source[key]\n }\n }\n\n return target\n}\n\nexport function deepMergeObjects<T extends AnyObject>(objects: T[]): T {\n const result = {} as T\n for (const obj of objects) {\n deepMerge(result, obj)\n }\n return result\n}\n","import { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { getCompilerOptions } from './getCompilerOptions.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompileTsc = (\n folder: string = 'src',\n config: XyConfig = {},\n compilerOptionsParam?: CompilerOptions,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n const verbose = config?.verbose ?? false\n\n const compilerOptions = {\n ...(getCompilerOptions({\n outDir: 'dist/types',\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n emitDeclarationOnly: false,\n noEmit: true,\n } as TsConfigCompilerOptions\n\n const validTsExt = ['.ts', '.tsx', '.d.ts', '.cts', '.d.cts', '.mts', '.d.mts']\n const includes = ['.stories.', '.spec.', '.d.ts', '.d.cts', '.d.mts']\n\n // calling all here since the types do not get rolled up\n const files = buildEntries(folder, 'all', verbose)\n .filter(file => validTsExt.find(ext => file.endsWith(ext)) && (includes.find(include => file.includes(include))))\n\n console.log(chalk.green(`Compiling Files ${pkg}: ${files.length}`))\n\n if (files.length > 0) {\n const program = createProgramFromConfig({\n basePath: pkg ?? cwd(),\n compilerOptions,\n exclude: ['dist', 'docs'],\n files,\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => folder,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n }\n return 0\n}\n"],"mappings":"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","names":["chalk","chalk","sys","deepmerge","config","require","config","chalk","sys","config","cwd","chalk","createProgramFromConfig","DiagnosticCategory","formatDiagnosticsWithColorAndContext","getPreEmitDiagnostics","sys","config","cwd","chalk","createProgramFromConfig","getPreEmitDiagnostics","formatDiagnosticsWithColorAndContext","sys","DiagnosticCategory","options","config","chalk"]}
1
+ {"version":3,"sources":["../../../src/bin/package/compile-tsup.ts","../../../src/actions/package/compile/packageCompileTsup.ts","../../../src/actions/package/compile/inputs.ts","../../../src/actions/package/compile/buildEntries.ts","../../../src/actions/package/compile/deepMerge.ts","../../../src/actions/package/compile/packageCompileTscTypes.ts","../../../src/actions/package/compile/getCompilerOptions.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageCompileTsup } from '../../actions/index.ts'\n\npackageCompileTsup({ verbose: true })\n .then(value => (process.exitCode = value))\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exitCode = 1\n })\n","import type { Loader } from 'esbuild'\nimport type { Options } from 'tsup'\nimport { build, defineConfig } from 'tsup'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { deepMergeObjects } from './deepMerge.ts'\nimport { packageCompileTscTypes } from './packageCompileTscTypes.ts'\nimport type { EntryMode, XyTsupConfig } from './XyConfig.ts'\n\nconst compileFolder = async (\n folder: string,\n entryMode: EntryMode = 'single',\n options?: Options,\n verbose?: boolean,\n): Promise<number> => {\n const outDir = options?.outDir ?? 'dist'\n\n if (verbose) {\n console.log(`compileFolder [${folder}]`)\n }\n\n const entry = buildEntries(folder, entryMode)\n const optionsResult = defineConfig({\n bundle: true,\n cjsInterop: true,\n clean: true,\n dts: false,\n entry,\n format: ['esm'],\n outDir,\n silent: true,\n sourcemap: true,\n splitting: false,\n tsconfig: 'tsconfig.json',\n ...options,\n })\n const optionsList = (\n await Promise.all(\n (Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap<Promise<Options[]>>(async (options) => {\n const result = typeof options === 'function' ? await options({}) : [options]\n return Array.isArray(result) ? result : [result]\n }),\n )\n ).flat()\n\n if (verbose) {\n console.log(`TSUP:build:start [${folder}]`)\n }\n\n await Promise.all(optionsList.map(options => build(options)))\n\n if (verbose) {\n console.log(`TSUP:build:stop [${folder}]`)\n }\n\n packageCompileTscTypes(entry, outDir)\n\n return 0\n}\n\nexport const tsupOptions = (options: Options[] = []): Options => {\n const standardLoaders: Record<string, Loader> = {\n '.gif': 'copy', '.html': 'copy', '.jpg': 'copy', '.json': 'json', '.png': 'copy', '.svg': 'copy', '.webp': 'copy',\n }\n\n const standardOptions: Options = {\n bundle: true,\n format: ['esm'],\n loader: standardLoaders,\n outExtension: ({ format }) => (format === 'esm' ? { js: '.mjs' } : { js: '.cjs' }),\n skipNodeModulesBundle: true,\n sourcemap: true,\n target: 'esnext',\n }\n\n return deepMergeObjects([standardOptions, ...options])\n}\n\nexport const packageCompileTsup = async (config?: XyTsupConfig) => {\n const compile = config?.compile\n const verbose = config?.verbose ?? false\n if (verbose) {\n console.log(`Compiling with TSUP [Depth: ${compile?.depth}]`)\n }\n\n const compileForNode = compile?.node ?? { src: {} }\n const compileForBrowser = compile?.browser ?? { src: {} }\n const compileForNeutral = compile?.neutral ?? { src: {} }\n\n if (verbose) {\n console.log('Calling packageCompileTscTypes')\n }\n\n return (\n (\n await Promise.all(\n Object.entries(compileForNode).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.node?.esbuildOptions === 'object' ? compile?.node?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'node', outDir: optionsObject.outDir ?? 'dist/node' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForBrowser).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === 'object' ? compile?.browser?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'browser', outDir: optionsObject.outDir ?? 'dist/browser' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForNeutral).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === 'object' ? compile?.neutral?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'neutral', outDir: optionsObject.outDir ?? 'dist/neutral' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + 0\n )\n}\n","import { glob } from 'glob'\n\nexport const getAllInputs = (folder: string) => {\n /* tsup wants posix paths */\n return glob.sync(`${folder}/**/*.*`, { posix: true })\n}\n","import { getAllInputs } from './inputs.ts'\nimport type { EntryMode } from './XyConfig.ts'\n\nexport const buildEntries = (folder: string, entryMode: EntryMode = 'single', excludeSpecAndStories = true, verbose = false) => {\n let entries: string[] = []\n switch (entryMode) {\n case 'platform': {\n entries = [`${folder}/index-node.ts`, `${folder}/index-browser.ts`]\n break\n }\n case 'all': {\n entries = excludeSpecAndStories ? getAllInputs(folder).filter(entry => !entry.includes('.spec.') && !entry.includes('.stories.')) : getAllInputs(folder)\n break\n }\n default: {\n entries = [`${folder}/index.ts`]\n break\n }\n }\n if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`)\n return entries\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = Record<any, any>\n\nfunction deepMerge<T extends AnyObject>(target: AnyObject, source: AnyObject): T {\n if (!source || typeof source !== 'object') return target\n\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object'\n && source[key] !== null\n && !Array.isArray(source[key])\n ) {\n // Recursively merge nested objects\n if (!target[key] || typeof target[key] !== 'object') {\n target[key] = {} as T[typeof key]\n }\n deepMerge(target[key], source[key])\n } else {\n // Overwrite with non-object values\n target[key] = source[key]\n }\n }\n\n return target\n}\n\nexport function deepMergeObjects<T extends AnyObject>(objects: T[]): T {\n const result = {} as T\n for (const obj of objects) {\n deepMerge(result, obj)\n }\n return result\n}\n","/* eslint-disable max-statements */\nimport { rm, writeFileSync } from 'node:fs'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\n\nimport { Extractor, ExtractorConfig } from '@microsoft/api-extractor'\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { getCompilerOptions } from './getCompilerOptions.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompileTscTypes = (\n entries: string[],\n outDir: string,\n folder: string = 'src',\n config: XyConfig = {},\n compilerOptionsParam?: CompilerOptions,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n const verbose = config?.verbose ?? false\n const tempDir = `${pkg}/.xylabs/ts-scripts-yarn3/compile/tsc/types/${Date.now()}`\n\n rm(tempDir, { force: true, recursive: true }, (err) => {\n if (err) {\n console.error(chalk.red(`Error removing temporary directory: ${tempDir}`), err)\n return 1\n }\n })\n\n const compilerOptions = {\n ...(getCompilerOptions({\n emitDeclarationOnly: true,\n outDir: tempDir,\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n emitDeclarationOnly: true,\n noEmit: false,\n } as TsConfigCompilerOptions\n\n const validTsExt = ['.ts', '.tsx', '.d.ts', '.cts', '.d.cts', '.mts', '.d.mts']\n const excludes = ['.stories.', '.spec.', '/stories/', '/spec/']\n\n // calling all here since the types do not get rolled up\n const files = buildEntries(folder, 'all', verbose)\n .filter(file => validTsExt.find(ext => file.endsWith(ext)) && !(excludes.some(exclude => file.includes(exclude))))\n\n console.log(chalk.green(`Compiling Types ${pkg}: ${files.length}`))\n\n if (files.length > 0) {\n const program = createProgramFromConfig({\n basePath: pkg ?? cwd(),\n compilerOptions,\n exclude: ['build', 'dist', 'docs', '**/*.spec.*', '**/*.stories.*', 'src/**/spec/**/*'],\n files,\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => folder,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n const tscErrorCount = diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n if (tscErrorCount > 0) {\n return tscErrorCount\n }\n\n // api-extractor\n\n const entryNameToTypeName = (entry: string): string => {\n const splitEntryName = entry.split('.')\n const newEntryExtension = 'd.' + splitEntryName.at(-1)\n return [...splitEntryName.slice(0, -1), newEntryExtension].join('.')\n }\n\n const entryNames = entries.map(entry => entry.split(`${folder}/`).at(-1) ?? entry)\n\n for (const entry of entryNames) {\n const entryTypeName = entryNameToTypeName(entry)\n\n const configObject = {\n projectFolder: '.',\n mainEntryPointFilePath: path.resolve([tempDir, entryTypeName].join('/')),\n bundledPackages: [],\n compiler: { tsconfigFilePath: path.resolve(`${pkg}/tsconfig.json`) },\n dtsRollup: {\n enabled: true,\n untrimmedFilePath: path.resolve(`${outDir}/${entryTypeName}`),\n },\n apiReport: { enabled: false },\n docModel: { enabled: false },\n tsdocMetadata: { enabled: false },\n }\n\n writeFileSync(`${tempDir}/api-extractor.json`, JSON.stringify(configObject, null, 2))\n\n const extractorConfig = ExtractorConfig.prepare({\n configObject,\n configObjectFullPath: path.resolve(`${tempDir}/api-extractor.json`), // just a virtual label, doesn't have to exist\n packageJsonFullPath: path.resolve('package.json'),\n })\n\n const extractorResult = Extractor.invoke(extractorConfig, {\n localBuild: true,\n showVerboseMessages: true,\n })\n\n if (extractorResult.succeeded) {\n console.log('API Extractor completed successfully')\n process.exitCode = 0\n } else {\n console.error(\n `API Extractor completed with ${extractorResult.errorCount} errors`\n + ` and ${extractorResult.warningCount} warnings`,\n )\n process.exitCode = 1\n }\n }\n }\n return 0\n}\n","import { createRequire } from 'node:module'\n\nimport deepmerge from 'deepmerge'\nimport type { TsConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n findConfigFile, readConfigFile, sys,\n} from 'typescript'\n\nconst getNested = (config: TsConfig): CompilerOptions => {\n if (config.extends) {\n const require = createRequire(import.meta.url)\n const opts = require(config.extends)\n return deepmerge(getNested(opts), config.compilerOptions ?? {}) as CompilerOptions\n }\n\n return config.compilerOptions as CompilerOptions\n}\n\nconst getCompilerOptionsJSONFollowExtends = (filename: string): CompilerOptions => {\n const config = readConfigFile(filename, sys.readFile).config\n return getNested(config)\n}\n\nexport const getCompilerOptions = (options: CompilerOptions = {}, tsconfig: string = 'tsconfig.json'): CompilerOptions => {\n const configFileName = findConfigFile('./', sys.fileExists, tsconfig)\n const configFileCompilerOptions = (configFileName ? getCompilerOptionsJSONFollowExtends(configFileName) : undefined) ?? {}\n\n return deepmerge(configFileCompilerOptions, options)\n}\n"],"mappings":"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","names":["chalk","sys","require","sys","options","chalk"]}