zile 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Package.d.ts +39 -6
- package/dist/Package.d.ts.map +1 -1
- package/dist/Package.js +98 -33
- package/dist/Package.js.map +1 -1
- package/dist/internal/package.json +16 -11
- package/package.json +16 -11
- package/src/Cli.ts +1 -1
- package/src/Package.test.ts +61 -2
- package/src/Package.ts +132 -41
- package/src/Packages.test.ts +8 -0
- package/src/__snapshots__/Cli.test.ts.snap +27 -10
- package/src/__snapshots__/Package.test.ts.snap +60 -10
- package/src/__snapshots__/Packages.test.ts.snap +7 -0
package/dist/Package.d.ts
CHANGED
|
@@ -57,6 +57,23 @@ export declare namespace checkPackageJson {
|
|
|
57
57
|
};
|
|
58
58
|
type ReturnType = undefined;
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Copies asset files to the output directory.
|
|
62
|
+
*
|
|
63
|
+
* @param options - Options for copying assets.
|
|
64
|
+
* @returns Promise that resolves when assets are copied.
|
|
65
|
+
*/
|
|
66
|
+
export declare function copyAssets(options: copyAssets.Options): Promise<void>;
|
|
67
|
+
export declare namespace copyAssets {
|
|
68
|
+
type Options = {
|
|
69
|
+
/** Array of absolute paths to asset files. */
|
|
70
|
+
assets: string[];
|
|
71
|
+
/** Working directory. */
|
|
72
|
+
cwd: string;
|
|
73
|
+
/** Output directory. */
|
|
74
|
+
outDir: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
60
77
|
/**
|
|
61
78
|
* Decorates the package.json file to include publish-specific fields.
|
|
62
79
|
*
|
|
@@ -67,6 +84,8 @@ export declare namespace checkPackageJson {
|
|
|
67
84
|
export declare function decoratePackageJson(pkgJson: PackageJson, options: decoratePackageJson.Options): Promise<PackageJson>;
|
|
68
85
|
export declare namespace decoratePackageJson {
|
|
69
86
|
type Options = {
|
|
87
|
+
/** Array of absolute paths to asset files. */
|
|
88
|
+
assets: string[];
|
|
70
89
|
/** Working directory. */
|
|
71
90
|
cwd: string;
|
|
72
91
|
/** Whether to link output files to source files for development. */
|
|
@@ -81,9 +100,9 @@ export declare namespace decoratePackageJson {
|
|
|
81
100
|
* Gets entry files from package.json exports field or main field.
|
|
82
101
|
*
|
|
83
102
|
* @param options - Options for getting entry files.
|
|
84
|
-
* @returns Array of absolute paths to
|
|
103
|
+
* @returns Array of absolute paths to asset files and source files.
|
|
85
104
|
*/
|
|
86
|
-
export declare function getEntries(options: getEntries.Options):
|
|
105
|
+
export declare function getEntries(options: getEntries.Options): getEntries.ReturnType;
|
|
87
106
|
export declare namespace getEntries {
|
|
88
107
|
type Options = {
|
|
89
108
|
/** Working directory. */
|
|
@@ -91,6 +110,12 @@ export declare namespace getEntries {
|
|
|
91
110
|
/** Package.json file. */
|
|
92
111
|
pkgJson: PackageJson;
|
|
93
112
|
};
|
|
113
|
+
type ReturnType = {
|
|
114
|
+
/** Array of absolute paths to asset files. */
|
|
115
|
+
assets: string[];
|
|
116
|
+
/** Array of absolute paths to source files. */
|
|
117
|
+
sources: string[];
|
|
118
|
+
};
|
|
94
119
|
}
|
|
95
120
|
/**
|
|
96
121
|
* Gets the source directory from the entry files.
|
|
@@ -103,8 +128,8 @@ export declare namespace getSourceDir {
|
|
|
103
128
|
type Options = {
|
|
104
129
|
/** Working directory. */
|
|
105
130
|
cwd?: string | undefined;
|
|
106
|
-
/**
|
|
107
|
-
|
|
131
|
+
/** Source files. */
|
|
132
|
+
sources: string[];
|
|
108
133
|
};
|
|
109
134
|
}
|
|
110
135
|
export declare function readPackageJson(options: readPackageJson.Options): Promise<any>;
|
|
@@ -134,8 +159,8 @@ export declare namespace transpile {
|
|
|
134
159
|
type Options = {
|
|
135
160
|
/** Working directory of the package to transpile. @default process.cwd() */
|
|
136
161
|
cwd?: string | undefined;
|
|
137
|
-
/**
|
|
138
|
-
|
|
162
|
+
/** Source files to include in the transpilation. */
|
|
163
|
+
sources: string[];
|
|
139
164
|
/** Path to tsconfig.json file, relative to the working directory. @default './tsconfig.json' */
|
|
140
165
|
project?: string | undefined;
|
|
141
166
|
/** Whether to use tsgo for transpilation. @default false */
|
|
@@ -153,4 +178,12 @@ export declare namespace transpile {
|
|
|
153
178
|
* @param pkgJson - Package.json file to write.
|
|
154
179
|
*/
|
|
155
180
|
export declare function writePackageJson(cwd: string, pkgJson: PackageJson): Promise<void>;
|
|
181
|
+
/**
|
|
182
|
+
* Detects the indentation used in a JSON string.
|
|
183
|
+
*
|
|
184
|
+
* @param content - JSON string content.
|
|
185
|
+
* @returns Detected indentation string (e.g., ' ', ' ', '\t').
|
|
186
|
+
* @internal
|
|
187
|
+
*/
|
|
188
|
+
export declare function detectIndent(content: string): string;
|
|
156
189
|
//# sourceMappingURL=Package.d.ts.map
|
package/dist/Package.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Package.d.ts","sourceRoot":"","sources":["../src/Package.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE1D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA;AAEzC;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"Package.d.ts","sourceRoot":"","sources":["../src/Package.ts"],"names":[],"mappings":"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"}
|
package/dist/Package.js
CHANGED
|
@@ -17,17 +17,18 @@ export async function build(options) {
|
|
|
17
17
|
]);
|
|
18
18
|
const outDir = tsConfig.compilerOptions?.outDir ?? path.resolve(cwd, 'dist');
|
|
19
19
|
await checkInput({ cwd, outDir });
|
|
20
|
-
const
|
|
20
|
+
const { assets, sources } = getEntries({ cwd, pkgJson });
|
|
21
21
|
if (!link) {
|
|
22
|
-
const result = await transpile({ cwd,
|
|
22
|
+
const result = await transpile({ cwd, sources, tsgo });
|
|
23
23
|
tsConfig = result.tsConfig;
|
|
24
24
|
}
|
|
25
|
+
await copyAssets({ assets, cwd, outDir });
|
|
25
26
|
if (link) {
|
|
26
27
|
await fs.rm(outDir, { recursive: true }).catch(() => { });
|
|
27
28
|
await fs.mkdir(outDir, { recursive: true });
|
|
28
29
|
}
|
|
29
|
-
const sourceDir = getSourceDir({ cwd,
|
|
30
|
-
const packageJson = await decoratePackageJson(pkgJson, { cwd, link, outDir, sourceDir });
|
|
30
|
+
const sourceDir = getSourceDir({ cwd, sources });
|
|
31
|
+
const packageJson = await decoratePackageJson(pkgJson, { cwd, link, outDir, sourceDir, assets });
|
|
31
32
|
await writePackageJson(cwd, packageJson);
|
|
32
33
|
return { packageJson, tsConfig };
|
|
33
34
|
}
|
|
@@ -86,6 +87,21 @@ export async function checkPackageJson(options) {
|
|
|
86
87
|
}
|
|
87
88
|
return undefined;
|
|
88
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Copies asset files to the output directory.
|
|
92
|
+
*
|
|
93
|
+
* @param options - Options for copying assets.
|
|
94
|
+
* @returns Promise that resolves when assets are copied.
|
|
95
|
+
*/
|
|
96
|
+
export async function copyAssets(options) {
|
|
97
|
+
const { assets, cwd, outDir } = options;
|
|
98
|
+
for (const asset of assets) {
|
|
99
|
+
const relativePath = path.relative(cwd, asset);
|
|
100
|
+
const destPath = path.resolve(outDir, relativePath);
|
|
101
|
+
await fs.mkdir(path.dirname(destPath), { recursive: true });
|
|
102
|
+
await fs.copyFile(asset, destPath);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
89
105
|
/**
|
|
90
106
|
* Decorates the package.json file to include publish-specific fields.
|
|
91
107
|
*
|
|
@@ -94,9 +110,10 @@ export async function checkPackageJson(options) {
|
|
|
94
110
|
* @returns Transformed package.json file as an object.
|
|
95
111
|
*/
|
|
96
112
|
export async function decoratePackageJson(pkgJson, options) {
|
|
97
|
-
const { cwd, link, outDir, sourceDir } = options;
|
|
113
|
+
const { assets, cwd, link, outDir, sourceDir } = options;
|
|
98
114
|
const relativeOutDir = `./${path.relative(cwd, outDir)}`;
|
|
99
115
|
const relativeSourceDir = `./${path.relative(cwd, sourceDir)}`;
|
|
116
|
+
const outAsset = (name) => `./${path.join(relativeOutDir, path.relative(cwd, name))}`;
|
|
100
117
|
const outFile = (name, ext = '') => './' +
|
|
101
118
|
path.join(relativeOutDir, name.replace(relativeSourceDir, '').replace(path.extname(name), '') + ext);
|
|
102
119
|
let bin = pkgJson.bin;
|
|
@@ -174,8 +191,13 @@ export async function decoratePackageJson(pkgJson, options) {
|
|
|
174
191
|
if (typeof value === 'string') {
|
|
175
192
|
if (value.startsWith(relativeOutDir))
|
|
176
193
|
return [key, value];
|
|
177
|
-
|
|
194
|
+
// Handle asset files (non-source files)
|
|
195
|
+
if (!/\.(m|c)?[jt]sx?$/.test(value)) {
|
|
196
|
+
const absolutePath = path.resolve(cwd, value);
|
|
197
|
+
if (assets.includes(absolutePath))
|
|
198
|
+
return [key, outAsset(absolutePath)];
|
|
178
199
|
return [key, value];
|
|
200
|
+
}
|
|
179
201
|
if (link)
|
|
180
202
|
linkExports(value);
|
|
181
203
|
return [
|
|
@@ -204,8 +226,16 @@ export async function decoratePackageJson(pkgJson, options) {
|
|
|
204
226
|
typeof value.src === 'string') {
|
|
205
227
|
if (value.src.startsWith(relativeOutDir))
|
|
206
228
|
return [key, value];
|
|
207
|
-
|
|
229
|
+
// Handle asset files (non-source files)
|
|
230
|
+
if (!/\.(m|c)?[jt]sx?$/.test(value.src)) {
|
|
231
|
+
if (link)
|
|
232
|
+
return [key, value];
|
|
233
|
+
const absolutePath = path.resolve(cwd, value.src);
|
|
234
|
+
if (assets.includes(absolutePath)) {
|
|
235
|
+
return [key, { ...value, default: outAsset(absolutePath) }];
|
|
236
|
+
}
|
|
208
237
|
return [key, value];
|
|
238
|
+
}
|
|
209
239
|
if (link)
|
|
210
240
|
linkExports(value.src);
|
|
211
241
|
return [
|
|
@@ -240,35 +270,44 @@ export async function decoratePackageJson(pkgJson, options) {
|
|
|
240
270
|
* Gets entry files from package.json exports field or main field.
|
|
241
271
|
*
|
|
242
272
|
* @param options - Options for getting entry files.
|
|
243
|
-
* @returns Array of absolute paths to
|
|
273
|
+
* @returns Array of absolute paths to asset files and source files.
|
|
244
274
|
*/
|
|
245
275
|
export function getEntries(options) {
|
|
246
276
|
const { cwd, pkgJson } = options;
|
|
247
|
-
const
|
|
277
|
+
const assets = [];
|
|
278
|
+
const sources = [];
|
|
248
279
|
if (pkgJson.bin) {
|
|
249
280
|
if (typeof pkgJson.bin === 'string')
|
|
250
|
-
|
|
281
|
+
sources.push(path.resolve(cwd, pkgJson.bin));
|
|
251
282
|
else
|
|
252
|
-
|
|
283
|
+
sources.push(...Object.entries(pkgJson.bin)
|
|
253
284
|
.map(([key, value]) =>
|
|
254
285
|
// biome-ignore lint/style/noNonNullAssertion: _
|
|
255
286
|
key.endsWith('.src') ? path.resolve(cwd, value) : undefined)
|
|
256
287
|
.filter(Boolean));
|
|
257
288
|
}
|
|
258
|
-
if (pkgJson.exports)
|
|
259
|
-
|
|
260
|
-
|
|
289
|
+
if (pkgJson.exports) {
|
|
290
|
+
for (const entry of Object.values(pkgJson.exports)) {
|
|
291
|
+
let entryPath;
|
|
261
292
|
if (typeof entry === 'string')
|
|
262
|
-
|
|
263
|
-
if (typeof entry === 'object' &&
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
293
|
+
entryPath = entry;
|
|
294
|
+
else if (typeof entry === 'object' &&
|
|
295
|
+
entry &&
|
|
296
|
+
'src' in entry &&
|
|
297
|
+
typeof entry.src === 'string')
|
|
298
|
+
entryPath = entry.src;
|
|
299
|
+
else
|
|
300
|
+
throw new Error('`exports` field in package.json must have a `src` field');
|
|
301
|
+
const absolutePath = path.resolve(cwd, entryPath);
|
|
302
|
+
if (/\.(m|c)?[jt]sx?$/.test(absolutePath))
|
|
303
|
+
sources.push(absolutePath);
|
|
304
|
+
else
|
|
305
|
+
assets.push(absolutePath);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
269
308
|
else if (pkgJson.main)
|
|
270
|
-
|
|
271
|
-
return
|
|
309
|
+
sources.push(path.resolve(cwd, pkgJson.main));
|
|
310
|
+
return { assets, sources };
|
|
272
311
|
}
|
|
273
312
|
/**
|
|
274
313
|
* Gets the source directory from the entry files.
|
|
@@ -277,11 +316,11 @@ export function getEntries(options) {
|
|
|
277
316
|
* @returns Source directory.
|
|
278
317
|
*/
|
|
279
318
|
export function getSourceDir(options) {
|
|
280
|
-
const { cwd = process.cwd(),
|
|
281
|
-
if (
|
|
319
|
+
const { cwd = process.cwd(), sources } = options;
|
|
320
|
+
if (sources.length === 0)
|
|
282
321
|
return path.resolve(cwd, 'src');
|
|
283
322
|
// Get directories of all entries
|
|
284
|
-
const dirs =
|
|
323
|
+
const dirs = sources.map((source) => path.dirname(source));
|
|
285
324
|
// Split each directory into segments
|
|
286
325
|
const segments = dirs.map((dir) => dir.split(path.sep));
|
|
287
326
|
// Find common segments
|
|
@@ -306,11 +345,12 @@ export function getSourceDir(options) {
|
|
|
306
345
|
const packageJsonCache = new Map();
|
|
307
346
|
export async function readPackageJson(options) {
|
|
308
347
|
const { cwd } = options;
|
|
348
|
+
// biome-ignore lint/style/noNonNullAssertion: _
|
|
309
349
|
if (packageJsonCache.has(cwd))
|
|
310
|
-
return packageJsonCache.get(cwd);
|
|
311
|
-
const
|
|
312
|
-
packageJsonCache.set(cwd,
|
|
313
|
-
return
|
|
350
|
+
return JSON.parse(packageJsonCache.get(cwd));
|
|
351
|
+
const content = await fs.readFile(path.resolve(cwd, 'package.json'), 'utf-8');
|
|
352
|
+
packageJsonCache.set(cwd, content);
|
|
353
|
+
return JSON.parse(content);
|
|
314
354
|
}
|
|
315
355
|
/**
|
|
316
356
|
* Reads the tsconfig.json file from the given working directory.
|
|
@@ -335,7 +375,7 @@ export async function readTsconfigJson(options) {
|
|
|
335
375
|
* @returns Transpilation artifacts.
|
|
336
376
|
*/
|
|
337
377
|
export async function transpile(options) {
|
|
338
|
-
const { cwd = process.cwd(),
|
|
378
|
+
const { cwd = process.cwd(), sources, project = './tsconfig.json', tsgo } = options;
|
|
339
379
|
const tsConfigJson = await readTsconfigJson({ cwd, project });
|
|
340
380
|
const tsconfigPath = path.resolve(cwd, project);
|
|
341
381
|
const { module: mod, moduleResolution: modRes } = tsConfigJson.compilerOptions ?? {};
|
|
@@ -366,7 +406,7 @@ export async function transpile(options) {
|
|
|
366
406
|
const tsConfig = {
|
|
367
407
|
compilerOptions,
|
|
368
408
|
exclude: tsConfigJson.exclude ?? [],
|
|
369
|
-
include: [...(tsConfigJson.include ?? []), ...
|
|
409
|
+
include: [...(tsConfigJson.include ?? []), ...sources],
|
|
370
410
|
};
|
|
371
411
|
const tmpProject = path.resolve(cwd, 'tsconfig.tmp.json');
|
|
372
412
|
await fs.writeFile(tmpProject, JSON.stringify(tsConfig, null, 2));
|
|
@@ -394,7 +434,32 @@ export async function transpile(options) {
|
|
|
394
434
|
* @param pkgJson - Package.json file to write.
|
|
395
435
|
*/
|
|
396
436
|
export async function writePackageJson(cwd, pkgJson) {
|
|
397
|
-
|
|
437
|
+
const content = packageJsonCache.get(cwd);
|
|
438
|
+
const indent = content ? detectIndent(content) : ' ';
|
|
439
|
+
await fs.writeFile(path.resolve(cwd, 'package.json'), JSON.stringify(pkgJson, null, indent), 'utf-8');
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Detects the indentation used in a JSON string.
|
|
443
|
+
*
|
|
444
|
+
* @param content - JSON string content.
|
|
445
|
+
* @returns Detected indentation string (e.g., ' ', ' ', '\t').
|
|
446
|
+
* @internal
|
|
447
|
+
*/
|
|
448
|
+
export function detectIndent(content) {
|
|
449
|
+
const lines = content.split('\n');
|
|
450
|
+
for (const line of lines) {
|
|
451
|
+
const match = line.match(/^(\s+)/);
|
|
452
|
+
if (match) {
|
|
453
|
+
const indent = match[1];
|
|
454
|
+
// If it starts with a tab, use tabs
|
|
455
|
+
if (indent[0] === '\t')
|
|
456
|
+
return '\t';
|
|
457
|
+
// Otherwise return the spaces found
|
|
458
|
+
return indent;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
// Default to 2 spaces if we can't detect
|
|
462
|
+
return ' ';
|
|
398
463
|
}
|
|
399
464
|
/**
|
|
400
465
|
* Finds the nearest node_modules/.bin binary by traversing up the directory tree.
|
package/dist/Package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Package.js","sourceRoot":"","sources":["../src/Package.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Package.js","sourceRoot":"","sources":["../src/Package.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zile",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.6",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
7
7
|
"zile": "./dist/Cli.js"
|
|
@@ -18,7 +18,17 @@
|
|
|
18
18
|
"dist",
|
|
19
19
|
"src"
|
|
20
20
|
],
|
|
21
|
+
"sideEffects": false,
|
|
21
22
|
"main": "./dist/index.js",
|
|
23
|
+
"module": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"src": "./src/index.ts",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
22
32
|
"packageManager": "bun@1.3",
|
|
23
33
|
"dependencies": {
|
|
24
34
|
"cac": "6.7.14",
|
|
@@ -43,18 +53,13 @@
|
|
|
43
53
|
"@changesets/cli": "^2.27.7",
|
|
44
54
|
"@types/node": "^24.7.1",
|
|
45
55
|
"publint": "0.3.14",
|
|
56
|
+
"typescript": "^5.9.3",
|
|
46
57
|
"type-fest": "^5.0.1",
|
|
47
58
|
"vitest": "^3.2.4"
|
|
48
59
|
},
|
|
49
60
|
"repository": "wevm/zile",
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
".": {
|
|
55
|
-
"src": "./src/index.ts",
|
|
56
|
-
"types": "./dist/index.d.ts",
|
|
57
|
-
"default": "./dist/index.js"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
61
|
+
"workspaces": [
|
|
62
|
+
".",
|
|
63
|
+
"examples/*"
|
|
64
|
+
]
|
|
60
65
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zile",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.6",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
7
7
|
"zile": "./dist/Cli.js"
|
|
@@ -18,7 +18,17 @@
|
|
|
18
18
|
"dist",
|
|
19
19
|
"src"
|
|
20
20
|
],
|
|
21
|
+
"sideEffects": false,
|
|
21
22
|
"main": "./dist/index.js",
|
|
23
|
+
"module": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"src": "./src/index.ts",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
22
32
|
"packageManager": "bun@1.3",
|
|
23
33
|
"dependencies": {
|
|
24
34
|
"cac": "6.7.14",
|
|
@@ -43,18 +53,13 @@
|
|
|
43
53
|
"@changesets/cli": "^2.27.7",
|
|
44
54
|
"@types/node": "^24.7.1",
|
|
45
55
|
"publint": "0.3.14",
|
|
56
|
+
"typescript": "^5.9.3",
|
|
46
57
|
"type-fest": "^5.0.1",
|
|
47
58
|
"vitest": "^3.2.4"
|
|
48
59
|
},
|
|
49
60
|
"repository": "wevm/zile",
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
".": {
|
|
55
|
-
"src": "./src/index.ts",
|
|
56
|
-
"types": "./dist/index.d.ts",
|
|
57
|
-
"default": "./dist/index.js"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
61
|
+
"workspaces": [
|
|
62
|
+
".",
|
|
63
|
+
"examples/*"
|
|
64
|
+
]
|
|
60
65
|
}
|
package/src/Cli.ts
CHANGED
package/src/Package.test.ts
CHANGED
|
@@ -77,7 +77,7 @@ describe('Package.getSourceDir', () => {
|
|
|
77
77
|
test('common', async () => {
|
|
78
78
|
{
|
|
79
79
|
const result = Package.getSourceDir({
|
|
80
|
-
|
|
80
|
+
sources: [
|
|
81
81
|
path.resolve(process.cwd(), 'src/index.ts'),
|
|
82
82
|
path.resolve(process.cwd(), 'src/foo.ts'),
|
|
83
83
|
path.resolve(process.cwd(), 'src/nested/dir/index.ts'),
|
|
@@ -89,7 +89,7 @@ describe('Package.getSourceDir', () => {
|
|
|
89
89
|
|
|
90
90
|
{
|
|
91
91
|
const result = Package.getSourceDir({
|
|
92
|
-
|
|
92
|
+
sources: [
|
|
93
93
|
path.resolve(process.cwd(), 'src/index.ts'),
|
|
94
94
|
path.resolve(process.cwd(), 'foo.ts'),
|
|
95
95
|
path.resolve(process.cwd(), 'bar/nested/dir/index.ts'),
|
|
@@ -100,3 +100,62 @@ describe('Package.getSourceDir', () => {
|
|
|
100
100
|
}
|
|
101
101
|
})
|
|
102
102
|
})
|
|
103
|
+
|
|
104
|
+
describe('Package.detectIndent', () => {
|
|
105
|
+
test('detects 2 spaces', () => {
|
|
106
|
+
const content = `{
|
|
107
|
+
"name": "test",
|
|
108
|
+
"version": "1.0.0"
|
|
109
|
+
}`
|
|
110
|
+
expect(Package.detectIndent(content)).toBe(' ')
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
test('detects 4 spaces', () => {
|
|
114
|
+
const content = `{
|
|
115
|
+
"name": "test",
|
|
116
|
+
"version": "1.0.0"
|
|
117
|
+
}`
|
|
118
|
+
expect(Package.detectIndent(content)).toBe(' ')
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
test('detects tabs', () => {
|
|
122
|
+
const content = `{
|
|
123
|
+
\t"name": "test",
|
|
124
|
+
\t"version": "1.0.0"
|
|
125
|
+
}`
|
|
126
|
+
expect(Package.detectIndent(content)).toBe('\t')
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
test('detects mixed indentation (tabs first)', () => {
|
|
130
|
+
const content = `{
|
|
131
|
+
\t "name": "test",
|
|
132
|
+
\t "version": "1.0.0"
|
|
133
|
+
}`
|
|
134
|
+
expect(Package.detectIndent(content)).toBe('\t')
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
test('returns default for empty file', () => {
|
|
138
|
+
expect(Package.detectIndent('')).toBe(' ')
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
test('returns default for file with no indentation', () => {
|
|
142
|
+
const content = `{"name":"test","version":"1.0.0"}`
|
|
143
|
+
expect(Package.detectIndent(content)).toBe(' ')
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
test('handles Windows line endings', () => {
|
|
147
|
+
const content = `{\r\n "name": "test",\r\n "version": "1.0.0"\r\n}`
|
|
148
|
+
expect(Package.detectIndent(content)).toBe(' ')
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
test('detects indentation from first indented line', () => {
|
|
152
|
+
const content = `{
|
|
153
|
+
"name": "test",
|
|
154
|
+
"version": "1.0.0",
|
|
155
|
+
"nested": {
|
|
156
|
+
"value": true
|
|
157
|
+
}
|
|
158
|
+
}`
|
|
159
|
+
expect(Package.detectIndent(content)).toBe(' ')
|
|
160
|
+
})
|
|
161
|
+
})
|
package/src/Package.ts
CHANGED
|
@@ -24,20 +24,22 @@ export async function build(options: build.Options): Promise<build.ReturnType> {
|
|
|
24
24
|
|
|
25
25
|
await checkInput({ cwd, outDir })
|
|
26
26
|
|
|
27
|
-
const
|
|
27
|
+
const { assets, sources } = getEntries({ cwd, pkgJson })
|
|
28
28
|
|
|
29
29
|
if (!link) {
|
|
30
|
-
const result = await transpile({ cwd,
|
|
30
|
+
const result = await transpile({ cwd, sources, tsgo })
|
|
31
31
|
tsConfig = result.tsConfig
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
await copyAssets({ assets, cwd, outDir })
|
|
35
|
+
|
|
34
36
|
if (link) {
|
|
35
37
|
await fs.rm(outDir, { recursive: true }).catch(() => {})
|
|
36
38
|
await fs.mkdir(outDir, { recursive: true })
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
const sourceDir = getSourceDir({ cwd,
|
|
40
|
-
const packageJson = await decoratePackageJson(pkgJson, { cwd, link, outDir, sourceDir })
|
|
41
|
+
const sourceDir = getSourceDir({ cwd, sources })
|
|
42
|
+
const packageJson = await decoratePackageJson(pkgJson, { cwd, link, outDir, sourceDir, assets })
|
|
41
43
|
|
|
42
44
|
await writePackageJson(cwd, packageJson)
|
|
43
45
|
|
|
@@ -150,6 +152,34 @@ export declare namespace checkPackageJson {
|
|
|
150
152
|
type ReturnType = undefined
|
|
151
153
|
}
|
|
152
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Copies asset files to the output directory.
|
|
157
|
+
*
|
|
158
|
+
* @param options - Options for copying assets.
|
|
159
|
+
* @returns Promise that resolves when assets are copied.
|
|
160
|
+
*/
|
|
161
|
+
export async function copyAssets(options: copyAssets.Options): Promise<void> {
|
|
162
|
+
const { assets, cwd, outDir } = options
|
|
163
|
+
|
|
164
|
+
for (const asset of assets) {
|
|
165
|
+
const relativePath = path.relative(cwd, asset)
|
|
166
|
+
const destPath = path.resolve(outDir, relativePath)
|
|
167
|
+
await fs.mkdir(path.dirname(destPath), { recursive: true })
|
|
168
|
+
await fs.copyFile(asset, destPath)
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export declare namespace copyAssets {
|
|
173
|
+
type Options = {
|
|
174
|
+
/** Array of absolute paths to asset files. */
|
|
175
|
+
assets: string[]
|
|
176
|
+
/** Working directory. */
|
|
177
|
+
cwd: string
|
|
178
|
+
/** Output directory. */
|
|
179
|
+
outDir: string
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
153
183
|
/**
|
|
154
184
|
* Decorates the package.json file to include publish-specific fields.
|
|
155
185
|
*
|
|
@@ -161,11 +191,12 @@ export async function decoratePackageJson(
|
|
|
161
191
|
pkgJson: PackageJson,
|
|
162
192
|
options: decoratePackageJson.Options,
|
|
163
193
|
) {
|
|
164
|
-
const { cwd, link, outDir, sourceDir } = options
|
|
194
|
+
const { assets, cwd, link, outDir, sourceDir } = options
|
|
165
195
|
|
|
166
196
|
const relativeOutDir = `./${path.relative(cwd, outDir)}`
|
|
167
197
|
const relativeSourceDir = `./${path.relative(cwd, sourceDir)}`
|
|
168
198
|
|
|
199
|
+
const outAsset = (name: string) => `./${path.join(relativeOutDir, path.relative(cwd, name))}`
|
|
169
200
|
const outFile = (name: string, ext: string = '') =>
|
|
170
201
|
'./' +
|
|
171
202
|
path.join(
|
|
@@ -260,7 +291,12 @@ export async function decoratePackageJson(
|
|
|
260
291
|
// }
|
|
261
292
|
if (typeof value === 'string') {
|
|
262
293
|
if (value.startsWith(relativeOutDir)) return [key, value]
|
|
263
|
-
|
|
294
|
+
// Handle asset files (non-source files)
|
|
295
|
+
if (!/\.(m|c)?[jt]sx?$/.test(value)) {
|
|
296
|
+
const absolutePath = path.resolve(cwd, value)
|
|
297
|
+
if (assets.includes(absolutePath)) return [key, outAsset(absolutePath)]
|
|
298
|
+
return [key, value]
|
|
299
|
+
}
|
|
264
300
|
if (link) linkExports(value)
|
|
265
301
|
return [
|
|
266
302
|
key,
|
|
@@ -290,7 +326,15 @@ export async function decoratePackageJson(
|
|
|
290
326
|
typeof value.src === 'string'
|
|
291
327
|
) {
|
|
292
328
|
if (value.src.startsWith(relativeOutDir)) return [key, value]
|
|
293
|
-
|
|
329
|
+
// Handle asset files (non-source files)
|
|
330
|
+
if (!/\.(m|c)?[jt]sx?$/.test(value.src)) {
|
|
331
|
+
if (link) return [key, value]
|
|
332
|
+
const absolutePath = path.resolve(cwd, value.src)
|
|
333
|
+
if (assets.includes(absolutePath)) {
|
|
334
|
+
return [key, { ...value, default: outAsset(absolutePath) }]
|
|
335
|
+
}
|
|
336
|
+
return [key, value]
|
|
337
|
+
}
|
|
294
338
|
if (link) linkExports(value.src)
|
|
295
339
|
return [
|
|
296
340
|
key,
|
|
@@ -326,6 +370,8 @@ export async function decoratePackageJson(
|
|
|
326
370
|
|
|
327
371
|
export declare namespace decoratePackageJson {
|
|
328
372
|
type Options = {
|
|
373
|
+
/** Array of absolute paths to asset files. */
|
|
374
|
+
assets: string[]
|
|
329
375
|
/** Working directory. */
|
|
330
376
|
cwd: string
|
|
331
377
|
/** Whether to link output files to source files for development. */
|
|
@@ -341,17 +387,18 @@ export declare namespace decoratePackageJson {
|
|
|
341
387
|
* Gets entry files from package.json exports field or main field.
|
|
342
388
|
*
|
|
343
389
|
* @param options - Options for getting entry files.
|
|
344
|
-
* @returns Array of absolute paths to
|
|
390
|
+
* @returns Array of absolute paths to asset files and source files.
|
|
345
391
|
*/
|
|
346
|
-
export function getEntries(options: getEntries.Options):
|
|
392
|
+
export function getEntries(options: getEntries.Options): getEntries.ReturnType {
|
|
347
393
|
const { cwd, pkgJson } = options
|
|
348
394
|
|
|
349
|
-
const
|
|
395
|
+
const assets: string[] = []
|
|
396
|
+
const sources: string[] = []
|
|
350
397
|
|
|
351
398
|
if (pkgJson.bin) {
|
|
352
|
-
if (typeof pkgJson.bin === 'string')
|
|
399
|
+
if (typeof pkgJson.bin === 'string') sources.push(path.resolve(cwd, pkgJson.bin))
|
|
353
400
|
else
|
|
354
|
-
|
|
401
|
+
sources.push(
|
|
355
402
|
...(Object.entries(pkgJson.bin)
|
|
356
403
|
.map(([key, value]) =>
|
|
357
404
|
// biome-ignore lint/style/noNonNullAssertion: _
|
|
@@ -361,21 +408,26 @@ export function getEntries(options: getEntries.Options): string[] {
|
|
|
361
408
|
)
|
|
362
409
|
}
|
|
363
410
|
|
|
364
|
-
if (pkgJson.exports)
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
else if (pkgJson.main) entries.push(path.resolve(cwd, pkgJson.main))
|
|
411
|
+
if (pkgJson.exports) {
|
|
412
|
+
for (const entry of Object.values(pkgJson.exports)) {
|
|
413
|
+
let entryPath: string
|
|
414
|
+
if (typeof entry === 'string') entryPath = entry
|
|
415
|
+
else if (
|
|
416
|
+
typeof entry === 'object' &&
|
|
417
|
+
entry &&
|
|
418
|
+
'src' in entry &&
|
|
419
|
+
typeof entry.src === 'string'
|
|
420
|
+
)
|
|
421
|
+
entryPath = entry.src
|
|
422
|
+
else throw new Error('`exports` field in package.json must have a `src` field')
|
|
377
423
|
|
|
378
|
-
|
|
424
|
+
const absolutePath = path.resolve(cwd, entryPath)
|
|
425
|
+
if (/\.(m|c)?[jt]sx?$/.test(absolutePath)) sources.push(absolutePath)
|
|
426
|
+
else assets.push(absolutePath)
|
|
427
|
+
}
|
|
428
|
+
} else if (pkgJson.main) sources.push(path.resolve(cwd, pkgJson.main))
|
|
429
|
+
|
|
430
|
+
return { assets, sources }
|
|
379
431
|
}
|
|
380
432
|
|
|
381
433
|
export declare namespace getEntries {
|
|
@@ -385,6 +437,13 @@ export declare namespace getEntries {
|
|
|
385
437
|
/** Package.json file. */
|
|
386
438
|
pkgJson: PackageJson
|
|
387
439
|
}
|
|
440
|
+
|
|
441
|
+
type ReturnType = {
|
|
442
|
+
/** Array of absolute paths to asset files. */
|
|
443
|
+
assets: string[]
|
|
444
|
+
/** Array of absolute paths to source files. */
|
|
445
|
+
sources: string[]
|
|
446
|
+
}
|
|
388
447
|
}
|
|
389
448
|
|
|
390
449
|
/**
|
|
@@ -394,12 +453,12 @@ export declare namespace getEntries {
|
|
|
394
453
|
* @returns Source directory.
|
|
395
454
|
*/
|
|
396
455
|
export function getSourceDir(options: getSourceDir.Options): string {
|
|
397
|
-
const { cwd = process.cwd(),
|
|
456
|
+
const { cwd = process.cwd(), sources } = options
|
|
398
457
|
|
|
399
|
-
if (
|
|
458
|
+
if (sources.length === 0) return path.resolve(cwd, 'src')
|
|
400
459
|
|
|
401
460
|
// Get directories of all entries
|
|
402
|
-
const dirs =
|
|
461
|
+
const dirs = sources.map((source) => path.dirname(source))
|
|
403
462
|
|
|
404
463
|
// Split each directory into segments
|
|
405
464
|
const segments = dirs.map((dir) => dir.split(path.sep))
|
|
@@ -422,8 +481,8 @@ export declare namespace getSourceDir {
|
|
|
422
481
|
type Options = {
|
|
423
482
|
/** Working directory. */
|
|
424
483
|
cwd?: string | undefined
|
|
425
|
-
/**
|
|
426
|
-
|
|
484
|
+
/** Source files. */
|
|
485
|
+
sources: string[]
|
|
427
486
|
}
|
|
428
487
|
}
|
|
429
488
|
|
|
@@ -433,14 +492,15 @@ export declare namespace getSourceDir {
|
|
|
433
492
|
* @param cwd - Working directory to read the package.json file from.
|
|
434
493
|
* @returns Parsed package.json file as an object.
|
|
435
494
|
*/
|
|
436
|
-
const packageJsonCache: Map<string,
|
|
495
|
+
const packageJsonCache: Map<string, string> = new Map()
|
|
437
496
|
export async function readPackageJson(options: readPackageJson.Options) {
|
|
438
497
|
const { cwd } = options
|
|
439
498
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
499
|
+
// biome-ignore lint/style/noNonNullAssertion: _
|
|
500
|
+
if (packageJsonCache.has(cwd)) return JSON.parse(packageJsonCache.get(cwd)!)
|
|
501
|
+
const content = await fs.readFile(path.resolve(cwd, 'package.json'), 'utf-8')
|
|
502
|
+
packageJsonCache.set(cwd, content)
|
|
503
|
+
return JSON.parse(content)
|
|
444
504
|
}
|
|
445
505
|
|
|
446
506
|
export declare namespace readPackageJson {
|
|
@@ -482,7 +542,7 @@ export declare namespace readTsconfigJson {
|
|
|
482
542
|
* @returns Transpilation artifacts.
|
|
483
543
|
*/
|
|
484
544
|
export async function transpile(options: transpile.Options): Promise<transpile.ReturnType> {
|
|
485
|
-
const { cwd = process.cwd(),
|
|
545
|
+
const { cwd = process.cwd(), sources, project = './tsconfig.json', tsgo } = options
|
|
486
546
|
|
|
487
547
|
const tsConfigJson = await readTsconfigJson({ cwd, project })
|
|
488
548
|
const tsconfigPath = path.resolve(cwd, project)
|
|
@@ -519,7 +579,7 @@ export async function transpile(options: transpile.Options): Promise<transpile.R
|
|
|
519
579
|
const tsConfig = {
|
|
520
580
|
compilerOptions,
|
|
521
581
|
exclude: tsConfigJson.exclude ?? [],
|
|
522
|
-
include: [...(tsConfigJson.include ?? []), ...
|
|
582
|
+
include: [...(tsConfigJson.include ?? []), ...sources] as string[],
|
|
523
583
|
} as const
|
|
524
584
|
|
|
525
585
|
const tmpProject = path.resolve(cwd, 'tsconfig.tmp.json')
|
|
@@ -549,8 +609,8 @@ export declare namespace transpile {
|
|
|
549
609
|
type Options = {
|
|
550
610
|
/** Working directory of the package to transpile. @default process.cwd() */
|
|
551
611
|
cwd?: string | undefined
|
|
552
|
-
/**
|
|
553
|
-
|
|
612
|
+
/** Source files to include in the transpilation. */
|
|
613
|
+
sources: string[]
|
|
554
614
|
/** Path to tsconfig.json file, relative to the working directory. @default './tsconfig.json' */
|
|
555
615
|
project?: string | undefined
|
|
556
616
|
/** Whether to use tsgo for transpilation. @default false */
|
|
@@ -570,7 +630,38 @@ export declare namespace transpile {
|
|
|
570
630
|
* @param pkgJson - Package.json file to write.
|
|
571
631
|
*/
|
|
572
632
|
export async function writePackageJson(cwd: string, pkgJson: PackageJson) {
|
|
573
|
-
|
|
633
|
+
const content = packageJsonCache.get(cwd)
|
|
634
|
+
const indent = content ? detectIndent(content) : ' '
|
|
635
|
+
await fs.writeFile(
|
|
636
|
+
path.resolve(cwd, 'package.json'),
|
|
637
|
+
JSON.stringify(pkgJson, null, indent),
|
|
638
|
+
'utf-8',
|
|
639
|
+
)
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
/**
|
|
643
|
+
* Detects the indentation used in a JSON string.
|
|
644
|
+
*
|
|
645
|
+
* @param content - JSON string content.
|
|
646
|
+
* @returns Detected indentation string (e.g., ' ', ' ', '\t').
|
|
647
|
+
* @internal
|
|
648
|
+
*/
|
|
649
|
+
export function detectIndent(content: string): string {
|
|
650
|
+
const lines = content.split('\n')
|
|
651
|
+
|
|
652
|
+
for (const line of lines) {
|
|
653
|
+
const match = line.match(/^(\s+)/)
|
|
654
|
+
if (match) {
|
|
655
|
+
const indent = match[1]
|
|
656
|
+
// If it starts with a tab, use tabs
|
|
657
|
+
if (indent[0] === '\t') return '\t'
|
|
658
|
+
// Otherwise return the spaces found
|
|
659
|
+
return indent
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
// Default to 2 spaces if we can't detect
|
|
664
|
+
return ' '
|
|
574
665
|
}
|
|
575
666
|
|
|
576
667
|
/**
|
package/src/Packages.test.ts
CHANGED
|
@@ -29,6 +29,10 @@ describe('Packages.find', () => {
|
|
|
29
29
|
"/test/repos/basic-object-exports",
|
|
30
30
|
"/test/repos/basic",
|
|
31
31
|
"/src/internal",
|
|
32
|
+
"/examples/monorepo",
|
|
33
|
+
"/examples/monorepo/packages/foo",
|
|
34
|
+
"/examples/monorepo/packages/bar",
|
|
35
|
+
"/examples/basic",
|
|
32
36
|
]
|
|
33
37
|
`)
|
|
34
38
|
})
|
|
@@ -172,6 +176,10 @@ describe('Packages.find', () => {
|
|
|
172
176
|
"/test/repos/basic-object-exports",
|
|
173
177
|
"/test/repos/basic",
|
|
174
178
|
"/src/internal",
|
|
179
|
+
"/examples/monorepo",
|
|
180
|
+
"/examples/monorepo/packages/foo",
|
|
181
|
+
"/examples/monorepo/packages/bar",
|
|
182
|
+
"/examples/basic",
|
|
175
183
|
]
|
|
176
184
|
`)
|
|
177
185
|
})
|
|
@@ -29,16 +29,22 @@ exports[`'/basic': Cli.run > default > output 1`] = `
|
|
|
29
29
|
"basic.src": "./cli.ts"
|
|
30
30
|
},
|
|
31
31
|
"main": "./dist/index.js",
|
|
32
|
-
"sideEffects": false,
|
|
33
|
-
"module": "./dist/index.js",
|
|
34
|
-
"types": "./dist/index.d.ts",
|
|
35
32
|
"exports": {
|
|
36
33
|
".": {
|
|
37
34
|
"src": "./index.ts",
|
|
38
35
|
"types": "./dist/index.d.ts",
|
|
39
36
|
"default": "./dist/index.js"
|
|
40
|
-
}
|
|
41
|
-
|
|
37
|
+
},
|
|
38
|
+
"./foo": {
|
|
39
|
+
"src": "./foo.ts",
|
|
40
|
+
"types": "./dist/foo.d.ts",
|
|
41
|
+
"default": "./dist/foo.js"
|
|
42
|
+
},
|
|
43
|
+
"./config": "./dist/config.json"
|
|
44
|
+
},
|
|
45
|
+
"sideEffects": false,
|
|
46
|
+
"module": "./dist/index.js",
|
|
47
|
+
"types": "./dist/index.d.ts"
|
|
42
48
|
}
|
|
43
49
|
|
|
44
50
|
|
|
@@ -47,6 +53,7 @@ exports[`'/basic': Cli.run > default > output 1`] = `
|
|
|
47
53
|
│ ├── cli.d.ts.map
|
|
48
54
|
│ ├── cli.js
|
|
49
55
|
│ ├── cli.js.map
|
|
56
|
+
│ ├── config.json
|
|
50
57
|
│ ├── foo.d.ts
|
|
51
58
|
│ ├── foo.d.ts.map
|
|
52
59
|
│ ├── foo.js
|
|
@@ -56,6 +63,7 @@ exports[`'/basic': Cli.run > default > output 1`] = `
|
|
|
56
63
|
│ ├── index.js
|
|
57
64
|
│ └── index.js.map
|
|
58
65
|
├── cli.ts
|
|
66
|
+
├── config.json
|
|
59
67
|
├── foo.ts
|
|
60
68
|
├── index.ts
|
|
61
69
|
├── package.json
|
|
@@ -92,23 +100,32 @@ exports[`'/basic': Cli.run > link > output 1`] = `
|
|
|
92
100
|
"basic.src": "./cli.ts"
|
|
93
101
|
},
|
|
94
102
|
"main": "./dist/index.js",
|
|
95
|
-
"sideEffects": false,
|
|
96
|
-
"module": "./dist/index.js",
|
|
97
|
-
"types": "./dist/index.d.ts",
|
|
98
103
|
"exports": {
|
|
99
104
|
".": {
|
|
100
105
|
"src": "./index.ts",
|
|
101
106
|
"types": "./dist/index.d.ts",
|
|
102
107
|
"default": "./dist/index.js"
|
|
103
|
-
}
|
|
104
|
-
|
|
108
|
+
},
|
|
109
|
+
"./foo": {
|
|
110
|
+
"src": "./foo.ts",
|
|
111
|
+
"types": "./dist/foo.d.ts",
|
|
112
|
+
"default": "./dist/foo.js"
|
|
113
|
+
},
|
|
114
|
+
"./config": "./dist/config.json"
|
|
115
|
+
},
|
|
116
|
+
"sideEffects": false,
|
|
117
|
+
"module": "./dist/index.js",
|
|
118
|
+
"types": "./dist/index.d.ts"
|
|
105
119
|
}
|
|
106
120
|
|
|
107
121
|
|
|
108
122
|
├── dist
|
|
123
|
+
│ ├── foo.d.ts -> ../foo.ts
|
|
124
|
+
│ ├── foo.js -> ../foo.ts
|
|
109
125
|
│ ├── index.d.ts -> ../index.ts
|
|
110
126
|
│ └── index.js -> ../index.ts
|
|
111
127
|
├── cli.ts
|
|
128
|
+
├── config.json
|
|
112
129
|
├── foo.ts
|
|
113
130
|
├── index.ts
|
|
114
131
|
├── package.json
|
|
@@ -10,6 +10,8 @@ basic v0.0.0
|
|
|
10
10
|
|
|
11
11
|
(ignored per resolution) ⚠️ A require call resolved to an ESM JavaScript file, which is an error in Node and some bundlers. CommonJS consumers will need to use a dynamic import. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/CJSResolvesToESM.md
|
|
12
12
|
|
|
13
|
+
(ignored per resolution) 💀 Import failed to resolve to type declarations or JavaScript files. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/NoResolution.md
|
|
14
|
+
|
|
13
15
|
|
|
14
16
|
"basic"
|
|
15
17
|
|
|
@@ -18,6 +20,24 @@ bundler: 🟢
|
|
|
18
20
|
node10: (ignored) 🟢
|
|
19
21
|
node16 (from CJS): (ignored) ⚠️ ESM (dynamic import only)
|
|
20
22
|
|
|
23
|
+
***********************************
|
|
24
|
+
|
|
25
|
+
"basic/foo"
|
|
26
|
+
|
|
27
|
+
node16 (from ESM): 🟢 (ESM)
|
|
28
|
+
bundler: 🟢
|
|
29
|
+
node10: (ignored) 🟢
|
|
30
|
+
node16 (from CJS): (ignored) ⚠️ ESM (dynamic import only)
|
|
31
|
+
|
|
32
|
+
***********************************
|
|
33
|
+
|
|
34
|
+
"basic/config"
|
|
35
|
+
|
|
36
|
+
node16 (from ESM): 🟢 (JSON)
|
|
37
|
+
bundler: 🟢 (JSON)
|
|
38
|
+
node10: (ignored) 💀 Resolution failed
|
|
39
|
+
node16 (from CJS): (ignored) 🟢 (JSON)
|
|
40
|
+
|
|
21
41
|
***********************************
|
|
22
42
|
",
|
|
23
43
|
"publint": "Running publint v0.3.14 for basic...
|
|
@@ -58,16 +78,22 @@ exports[`'/basic': Package.build > default > output 1`] = `
|
|
|
58
78
|
"basic.src": "./cli.ts"
|
|
59
79
|
},
|
|
60
80
|
"main": "./dist/index.js",
|
|
61
|
-
"sideEffects": false,
|
|
62
|
-
"module": "./dist/index.js",
|
|
63
|
-
"types": "./dist/index.d.ts",
|
|
64
81
|
"exports": {
|
|
65
82
|
".": {
|
|
66
83
|
"src": "./index.ts",
|
|
67
84
|
"types": "./dist/index.d.ts",
|
|
68
85
|
"default": "./dist/index.js"
|
|
69
|
-
}
|
|
70
|
-
|
|
86
|
+
},
|
|
87
|
+
"./foo": {
|
|
88
|
+
"src": "./foo.ts",
|
|
89
|
+
"types": "./dist/foo.d.ts",
|
|
90
|
+
"default": "./dist/foo.js"
|
|
91
|
+
},
|
|
92
|
+
"./config": "./dist/config.json"
|
|
93
|
+
},
|
|
94
|
+
"sideEffects": false,
|
|
95
|
+
"module": "./dist/index.js",
|
|
96
|
+
"types": "./dist/index.d.ts"
|
|
71
97
|
}
|
|
72
98
|
|
|
73
99
|
|
|
@@ -76,6 +102,7 @@ exports[`'/basic': Package.build > default > output 1`] = `
|
|
|
76
102
|
│ ├── cli.d.ts.map
|
|
77
103
|
│ ├── cli.js
|
|
78
104
|
│ ├── cli.js.map
|
|
105
|
+
│ ├── config.json
|
|
79
106
|
│ ├── foo.d.ts
|
|
80
107
|
│ ├── foo.d.ts.map
|
|
81
108
|
│ ├── foo.js
|
|
@@ -85,6 +112,7 @@ exports[`'/basic': Package.build > default > output 1`] = `
|
|
|
85
112
|
│ ├── index.js
|
|
86
113
|
│ └── index.js.map
|
|
87
114
|
├── cli.ts
|
|
115
|
+
├── config.json
|
|
88
116
|
├── foo.ts
|
|
89
117
|
├── index.ts
|
|
90
118
|
├── package.json
|
|
@@ -105,6 +133,12 @@ exports[`'/basic': Package.build > default > result 1`] = `
|
|
|
105
133
|
"src": "./index.ts",
|
|
106
134
|
"types": "./dist/index.d.ts",
|
|
107
135
|
},
|
|
136
|
+
"./config": "./dist/config.json",
|
|
137
|
+
"./foo": {
|
|
138
|
+
"default": "./dist/foo.js",
|
|
139
|
+
"src": "./foo.ts",
|
|
140
|
+
"types": "./dist/foo.d.ts",
|
|
141
|
+
},
|
|
108
142
|
},
|
|
109
143
|
"main": "./dist/index.js",
|
|
110
144
|
"module": "./dist/index.js",
|
|
@@ -138,6 +172,7 @@ exports[`'/basic': Package.build > default > result 1`] = `
|
|
|
138
172
|
"include": [
|
|
139
173
|
"/repos/basic/cli.ts",
|
|
140
174
|
"/repos/basic/index.ts",
|
|
175
|
+
"/repos/basic/foo.ts",
|
|
141
176
|
],
|
|
142
177
|
},
|
|
143
178
|
}
|
|
@@ -172,23 +207,32 @@ exports[`'/basic': Package.build > link > output 1`] = `
|
|
|
172
207
|
"basic.src": "./cli.ts"
|
|
173
208
|
},
|
|
174
209
|
"main": "./dist/index.js",
|
|
175
|
-
"sideEffects": false,
|
|
176
|
-
"module": "./dist/index.js",
|
|
177
|
-
"types": "./dist/index.d.ts",
|
|
178
210
|
"exports": {
|
|
179
211
|
".": {
|
|
180
212
|
"src": "./index.ts",
|
|
181
213
|
"types": "./dist/index.d.ts",
|
|
182
214
|
"default": "./dist/index.js"
|
|
183
|
-
}
|
|
184
|
-
|
|
215
|
+
},
|
|
216
|
+
"./foo": {
|
|
217
|
+
"src": "./foo.ts",
|
|
218
|
+
"types": "./dist/foo.d.ts",
|
|
219
|
+
"default": "./dist/foo.js"
|
|
220
|
+
},
|
|
221
|
+
"./config": "./dist/config.json"
|
|
222
|
+
},
|
|
223
|
+
"sideEffects": false,
|
|
224
|
+
"module": "./dist/index.js",
|
|
225
|
+
"types": "./dist/index.d.ts"
|
|
185
226
|
}
|
|
186
227
|
|
|
187
228
|
|
|
188
229
|
├── dist
|
|
230
|
+
│ ├── foo.d.ts -> ../foo.ts
|
|
231
|
+
│ ├── foo.js -> ../foo.ts
|
|
189
232
|
│ ├── index.d.ts -> ../index.ts
|
|
190
233
|
│ └── index.js -> ../index.ts
|
|
191
234
|
├── cli.ts
|
|
235
|
+
├── config.json
|
|
192
236
|
├── foo.ts
|
|
193
237
|
├── index.ts
|
|
194
238
|
├── package.json
|
|
@@ -209,6 +253,12 @@ exports[`'/basic': Package.build > link > result 1`] = `
|
|
|
209
253
|
"src": "./index.ts",
|
|
210
254
|
"types": "./dist/index.d.ts",
|
|
211
255
|
},
|
|
256
|
+
"./config": "./dist/config.json",
|
|
257
|
+
"./foo": {
|
|
258
|
+
"default": "./dist/foo.js",
|
|
259
|
+
"src": "./foo.ts",
|
|
260
|
+
"types": "./dist/foo.d.ts",
|
|
261
|
+
},
|
|
212
262
|
},
|
|
213
263
|
"main": "./dist/index.js",
|
|
214
264
|
"module": "./dist/index.js",
|
|
@@ -155,6 +155,12 @@ exports[`Packages.build > builds all packages 1`] = `
|
|
|
155
155
|
"src": "./index.ts",
|
|
156
156
|
"types": "./dist/index.d.ts",
|
|
157
157
|
},
|
|
158
|
+
"./config": "./dist/config.json",
|
|
159
|
+
"./foo": {
|
|
160
|
+
"default": "./dist/foo.js",
|
|
161
|
+
"src": "./foo.ts",
|
|
162
|
+
"types": "./dist/foo.d.ts",
|
|
163
|
+
},
|
|
158
164
|
},
|
|
159
165
|
"main": "./dist/index.js",
|
|
160
166
|
"module": "./dist/index.js",
|
|
@@ -188,6 +194,7 @@ exports[`Packages.build > builds all packages 1`] = `
|
|
|
188
194
|
"include": [
|
|
189
195
|
"/repos/basic/cli.ts",
|
|
190
196
|
"/repos/basic/index.ts",
|
|
197
|
+
"/repos/basic/foo.ts",
|
|
191
198
|
],
|
|
192
199
|
},
|
|
193
200
|
},
|