zile 0.0.5 → 0.0.7

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 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 entry files.
103
+ * @returns Array of absolute paths to asset files and source files.
85
104
  */
86
- export declare function getEntries(options: getEntries.Options): string[];
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
- /** Entry files. */
107
- entries: string[];
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
- /** Entry files to include in the transpilation. */
138
- entries: string[];
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 */
@@ -1 +1 @@
1
- {"version":3,"file":"Package.d.ts","sourceRoot":"","sources":["../src/Package.ts"],"names":[],"mappings":"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"}
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 entries = getEntries({ cwd, pkgJson });
20
+ const { assets, sources } = getEntries({ cwd, pkgJson });
21
21
  if (!link) {
22
- const result = await transpile({ cwd, entries, tsgo });
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, entries });
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
- if (!/\.(m|c)?[jt]sx?$/.test(value))
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
- if (!/\.(m|c)?[jt]sx?$/.test(value.src))
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 entry files.
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 entries = [];
277
+ const assets = [];
278
+ const sources = [];
248
279
  if (pkgJson.bin) {
249
280
  if (typeof pkgJson.bin === 'string')
250
- entries.push(path.resolve(cwd, pkgJson.bin));
281
+ sources.push(path.resolve(cwd, pkgJson.bin));
251
282
  else
252
- entries.push(...Object.entries(pkgJson.bin)
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
- entries.push(...Object.values(pkgJson.exports)
260
- .map((entry) => {
289
+ if (pkgJson.exports) {
290
+ for (const entry of Object.values(pkgJson.exports)) {
291
+ let entryPath;
261
292
  if (typeof entry === 'string')
262
- return entry;
263
- if (typeof entry === 'object' && entry && 'src' in entry && typeof entry.src === 'string')
264
- return entry.src;
265
- throw new Error('`exports` field in package.json must have a `src` field');
266
- })
267
- .map((entry) => path.resolve(cwd, entry))
268
- .filter((entry) => /\.(m|c)?[jt]sx?$/.test(entry)));
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
- entries.push(path.resolve(cwd, pkgJson.main));
271
- return entries;
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(), entries } = options;
281
- if (entries.length === 0)
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 = entries.map((entry) => path.dirname(entry));
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
@@ -300,7 +339,7 @@ export function getSourceDir(options) {
300
339
  /**
301
340
  * Reads the package.json file from the given working directory.
302
341
  *
303
- * @param cwd - Working directory to read the package.json file from.
342
+ * @param options - Options for reading the package.json file.
304
343
  * @returns Parsed package.json file as an object.
305
344
  */
306
345
  const packageJsonCache = new Map();
@@ -336,7 +375,7 @@ export async function readTsconfigJson(options) {
336
375
  * @returns Transpilation artifacts.
337
376
  */
338
377
  export async function transpile(options) {
339
- const { cwd = process.cwd(), entries, project = './tsconfig.json', tsgo } = options;
378
+ const { cwd = process.cwd(), sources, project = './tsconfig.json', tsgo } = options;
340
379
  const tsConfigJson = await readTsconfigJson({ cwd, project });
341
380
  const tsconfigPath = path.resolve(cwd, project);
342
381
  const { module: mod, moduleResolution: modRes } = tsConfigJson.compilerOptions ?? {};
@@ -367,7 +406,7 @@ export async function transpile(options) {
367
406
  const tsConfig = {
368
407
  compilerOptions,
369
408
  exclude: tsConfigJson.exclude ?? [],
370
- include: [...(tsConfigJson.include ?? []), ...entries],
409
+ include: [...(tsConfigJson.include ?? []), ...sources],
371
410
  };
372
411
  const tmpProject = path.resolve(cwd, 'tsconfig.tmp.json');
373
412
  await fs.writeFile(tmpProject, JSON.stringify(tsConfig, null, 2));
@@ -397,7 +436,11 @@ export async function transpile(options) {
397
436
  export async function writePackageJson(cwd, pkgJson) {
398
437
  const content = packageJsonCache.get(cwd);
399
438
  const indent = content ? detectIndent(content) : ' ';
400
- await fs.writeFile(path.resolve(cwd, 'package.json'), JSON.stringify(pkgJson, null, indent), 'utf-8');
439
+ const hasTrailingNewline = content ? content.endsWith('\n') : true;
440
+ let output = JSON.stringify(pkgJson, null, indent);
441
+ if (hasTrailingNewline)
442
+ output += '\n';
443
+ await fs.writeFile(path.resolve(cwd, 'package.json'), output, 'utf-8');
401
444
  }
402
445
  /**
403
446
  * Detects the indentation used in a JSON string.
@@ -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.5",
4
+ "version": "0.0.7",
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,9 @@
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
- "repository": "wevm/zile",
50
- "sideEffects": false,
51
- "module": "./dist/index.js",
52
- "types": "./dist/index.d.ts",
53
- "exports": {
54
- ".": {
55
- "src": "./src/index.ts",
56
- "types": "./dist/index.d.ts",
57
- "default": "./dist/index.js"
58
- }
59
- }
60
+ "repository": "wevm/zile"
60
61
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zile",
3
3
  "type": "module",
4
- "version": "0.0.5",
4
+ "version": "0.0.7",
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,9 @@
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
- "repository": "wevm/zile",
50
- "sideEffects": false,
51
- "module": "./dist/index.js",
52
- "types": "./dist/index.d.ts",
53
- "exports": {
54
- ".": {
55
- "src": "./src/index.ts",
56
- "types": "./dist/index.d.ts",
57
- "default": "./dist/index.js"
58
- }
59
- }
60
- }
60
+ "repository": "wevm/zile"
61
+ }
package/src/Cli.ts CHANGED
@@ -35,4 +35,4 @@ export declare namespace run {
35
35
  run({ args: process.argv }).catch((error) => {
36
36
  console.error(error)
37
37
  process.exit(1)
38
- })
38
+ })
@@ -1,3 +1,4 @@
1
+ import * as crypto from 'node:crypto'
1
2
  import * as fs from 'node:fs/promises'
2
3
  import path from 'node:path'
3
4
  import { checkOutput, setupRepos, tree } from '../test/utils.js'
@@ -77,7 +78,7 @@ describe('Package.getSourceDir', () => {
77
78
  test('common', async () => {
78
79
  {
79
80
  const result = Package.getSourceDir({
80
- entries: [
81
+ sources: [
81
82
  path.resolve(process.cwd(), 'src/index.ts'),
82
83
  path.resolve(process.cwd(), 'src/foo.ts'),
83
84
  path.resolve(process.cwd(), 'src/nested/dir/index.ts'),
@@ -89,7 +90,7 @@ describe('Package.getSourceDir', () => {
89
90
 
90
91
  {
91
92
  const result = Package.getSourceDir({
92
- entries: [
93
+ sources: [
93
94
  path.resolve(process.cwd(), 'src/index.ts'),
94
95
  path.resolve(process.cwd(), 'foo.ts'),
95
96
  path.resolve(process.cwd(), 'bar/nested/dir/index.ts'),
@@ -159,3 +160,56 @@ describe('Package.detectIndent', () => {
159
160
  expect(Package.detectIndent(content)).toBe(' ')
160
161
  })
161
162
  })
163
+
164
+ describe('Package.writePackageJson', () => {
165
+ test('preserves trailing newline when present', async () => {
166
+ const tmpDir = path.resolve(import.meta.dirname, '.tmp', crypto.randomUUID())
167
+ await fs.mkdir(tmpDir, { recursive: true })
168
+
169
+ const pkgPath = path.resolve(tmpDir, 'package.json')
170
+ const contentWithNewline = `{\n "name": "test",\n "version": "1.0.0"\n}\n`
171
+ await fs.writeFile(pkgPath, contentWithNewline, 'utf-8')
172
+
173
+ const pkgJson = await Package.readPackageJson({ cwd: tmpDir })
174
+ pkgJson.version = '1.0.1'
175
+ await Package.writePackageJson(tmpDir, pkgJson)
176
+
177
+ const result = await fs.readFile(pkgPath, 'utf-8')
178
+ expect(result.endsWith('\n')).toBe(true)
179
+
180
+ await fs.rm(tmpDir, { recursive: true })
181
+ })
182
+
183
+ test('preserves no trailing newline when absent', async () => {
184
+ const tmpDir = path.resolve(import.meta.dirname, '.tmp', crypto.randomUUID())
185
+ await fs.mkdir(tmpDir, { recursive: true })
186
+
187
+ const pkgPath = path.resolve(tmpDir, 'package.json')
188
+ const contentWithoutNewline = `{\n "name": "test",\n "version": "1.0.0"\n}`
189
+ await fs.writeFile(pkgPath, contentWithoutNewline, 'utf-8')
190
+
191
+ const pkgJson = await Package.readPackageJson({ cwd: tmpDir })
192
+ pkgJson.version = '1.0.1'
193
+ await Package.writePackageJson(tmpDir, pkgJson)
194
+
195
+ const result = await fs.readFile(pkgPath, 'utf-8')
196
+ expect(result.endsWith('\n')).toBe(false)
197
+ expect(result.endsWith('}\n')).toBe(false)
198
+ expect(result.endsWith('}')).toBe(true)
199
+
200
+ await fs.rm(tmpDir, { recursive: true })
201
+ })
202
+
203
+ test('defaults to trailing newline when no cache exists', async () => {
204
+ const tmpDir = path.resolve(import.meta.dirname, '.tmp', crypto.randomUUID())
205
+ await fs.mkdir(tmpDir, { recursive: true })
206
+
207
+ const pkgJson = { name: 'test', version: '1.0.0' }
208
+ await Package.writePackageJson(tmpDir, pkgJson)
209
+
210
+ const result = await fs.readFile(path.resolve(tmpDir, 'package.json'), 'utf-8')
211
+ expect(result.endsWith('\n')).toBe(true)
212
+
213
+ await fs.rm(tmpDir, { recursive: true })
214
+ })
215
+ })
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 entries = getEntries({ cwd, pkgJson })
27
+ const { assets, sources } = getEntries({ cwd, pkgJson })
28
28
 
29
29
  if (!link) {
30
- const result = await transpile({ cwd, entries, tsgo })
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, entries })
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
- if (!/\.(m|c)?[jt]sx?$/.test(value)) return [key, value]
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
- if (!/\.(m|c)?[jt]sx?$/.test(value.src)) return [key, value]
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 entry files.
390
+ * @returns Array of absolute paths to asset files and source files.
345
391
  */
346
- export function getEntries(options: getEntries.Options): string[] {
392
+ export function getEntries(options: getEntries.Options): getEntries.ReturnType {
347
393
  const { cwd, pkgJson } = options
348
394
 
349
- const entries: string[] = []
395
+ const assets: string[] = []
396
+ const sources: string[] = []
350
397
 
351
398
  if (pkgJson.bin) {
352
- if (typeof pkgJson.bin === 'string') entries.push(path.resolve(cwd, pkgJson.bin))
399
+ if (typeof pkgJson.bin === 'string') sources.push(path.resolve(cwd, pkgJson.bin))
353
400
  else
354
- entries.push(
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
- entries.push(
366
- ...Object.values(pkgJson.exports)
367
- .map((entry) => {
368
- if (typeof entry === 'string') return entry
369
- if (typeof entry === 'object' && entry && 'src' in entry && typeof entry.src === 'string')
370
- return entry.src
371
- throw new Error('`exports` field in package.json must have a `src` field')
372
- })
373
- .map((entry) => path.resolve(cwd, entry))
374
- .filter((entry) => /\.(m|c)?[jt]sx?$/.test(entry)),
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')
423
+
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))
377
429
 
378
- return entries
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(), entries } = options
456
+ const { cwd = process.cwd(), sources } = options
398
457
 
399
- if (entries.length === 0) return path.resolve(cwd, 'src')
458
+ if (sources.length === 0) return path.resolve(cwd, 'src')
400
459
 
401
460
  // Get directories of all entries
402
- const dirs = entries.map((entry) => path.dirname(entry))
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,15 +481,15 @@ export declare namespace getSourceDir {
422
481
  type Options = {
423
482
  /** Working directory. */
424
483
  cwd?: string | undefined
425
- /** Entry files. */
426
- entries: string[]
484
+ /** Source files. */
485
+ sources: string[]
427
486
  }
428
487
  }
429
488
 
430
489
  /**
431
490
  * Reads the package.json file from the given working directory.
432
491
  *
433
- * @param cwd - Working directory to read the package.json file from.
492
+ * @param options - Options for reading the package.json file.
434
493
  * @returns Parsed package.json file as an object.
435
494
  */
436
495
  const packageJsonCache: Map<string, string> = new Map()
@@ -483,7 +542,7 @@ export declare namespace readTsconfigJson {
483
542
  * @returns Transpilation artifacts.
484
543
  */
485
544
  export async function transpile(options: transpile.Options): Promise<transpile.ReturnType> {
486
- const { cwd = process.cwd(), entries, project = './tsconfig.json', tsgo } = options
545
+ const { cwd = process.cwd(), sources, project = './tsconfig.json', tsgo } = options
487
546
 
488
547
  const tsConfigJson = await readTsconfigJson({ cwd, project })
489
548
  const tsconfigPath = path.resolve(cwd, project)
@@ -520,7 +579,7 @@ export async function transpile(options: transpile.Options): Promise<transpile.R
520
579
  const tsConfig = {
521
580
  compilerOptions,
522
581
  exclude: tsConfigJson.exclude ?? [],
523
- include: [...(tsConfigJson.include ?? []), ...entries] as string[],
582
+ include: [...(tsConfigJson.include ?? []), ...sources] as string[],
524
583
  } as const
525
584
 
526
585
  const tmpProject = path.resolve(cwd, 'tsconfig.tmp.json')
@@ -550,8 +609,8 @@ export declare namespace transpile {
550
609
  type Options = {
551
610
  /** Working directory of the package to transpile. @default process.cwd() */
552
611
  cwd?: string | undefined
553
- /** Entry files to include in the transpilation. */
554
- entries: string[]
612
+ /** Source files to include in the transpilation. */
613
+ sources: string[]
555
614
  /** Path to tsconfig.json file, relative to the working directory. @default './tsconfig.json' */
556
615
  project?: string | undefined
557
616
  /** Whether to use tsgo for transpilation. @default false */
@@ -573,7 +632,12 @@ export declare namespace transpile {
573
632
  export async function writePackageJson(cwd: string, pkgJson: PackageJson) {
574
633
  const content = packageJsonCache.get(cwd)
575
634
  const indent = content ? detectIndent(content) : ' '
576
- await fs.writeFile(path.resolve(cwd, 'package.json'), JSON.stringify(pkgJson, null, indent), 'utf-8')
635
+ const hasTrailingNewline = content ? content.endsWith('\n') : true
636
+
637
+ let output = JSON.stringify(pkgJson, null, indent)
638
+ if (hasTrailingNewline) output += '\n'
639
+
640
+ await fs.writeFile(path.resolve(cwd, 'package.json'), output, 'utf-8')
577
641
  }
578
642
 
579
643
  /**
@@ -585,7 +649,7 @@ export async function writePackageJson(cwd: string, pkgJson: PackageJson) {
585
649
  */
586
650
  export function detectIndent(content: string): string {
587
651
  const lines = content.split('\n')
588
-
652
+
589
653
  for (const line of lines) {
590
654
  const match = line.match(/^(\s+)/)
591
655
  if (match) {
@@ -596,7 +660,7 @@ export function detectIndent(content: string): string {
596
660
  return indent
597
661
  }
598
662
  }
599
-
663
+
600
664
  // Default to 2 spaces if we can't detect
601
665
  return ' '
602
666
  }
@@ -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,24 +29,32 @@ 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
 
51
+
45
52
  ├── dist
46
53
  │ ├── cli.d.ts
47
54
  │ ├── cli.d.ts.map
48
55
  │ ├── cli.js
49
56
  │ ├── cli.js.map
57
+ │ ├── config.json
50
58
  │ ├── foo.d.ts
51
59
  │ ├── foo.d.ts.map
52
60
  │ ├── foo.js
@@ -56,6 +64,7 @@ exports[`'/basic': Cli.run > default > output 1`] = `
56
64
  │ ├── index.js
57
65
  │ └── index.js.map
58
66
  ├── cli.ts
67
+ ├── config.json
59
68
  ├── foo.ts
60
69
  ├── index.ts
61
70
  ├── package.json
@@ -92,23 +101,33 @@ exports[`'/basic': Cli.run > link > output 1`] = `
92
101
  "basic.src": "./cli.ts"
93
102
  },
94
103
  "main": "./dist/index.js",
95
- "sideEffects": false,
96
- "module": "./dist/index.js",
97
- "types": "./dist/index.d.ts",
98
104
  "exports": {
99
105
  ".": {
100
106
  "src": "./index.ts",
101
107
  "types": "./dist/index.d.ts",
102
108
  "default": "./dist/index.js"
103
- }
104
- }
109
+ },
110
+ "./foo": {
111
+ "src": "./foo.ts",
112
+ "types": "./dist/foo.d.ts",
113
+ "default": "./dist/foo.js"
114
+ },
115
+ "./config": "./dist/config.json"
116
+ },
117
+ "sideEffects": false,
118
+ "module": "./dist/index.js",
119
+ "types": "./dist/index.d.ts"
105
120
  }
106
121
 
107
122
 
123
+
108
124
  ├── dist
125
+ │ ├── foo.d.ts -> ../foo.ts
126
+ │ ├── foo.js -> ../foo.ts
109
127
  │ ├── index.d.ts -> ../index.ts
110
128
  │ └── index.js -> ../index.ts
111
129
  ├── cli.ts
130
+ ├── config.json
112
131
  ├── foo.ts
113
132
  ├── index.ts
114
133
  ├── package.json
@@ -156,6 +175,7 @@ exports[`'/basic-object-exports': Cli.run > default > output 1`] = `
156
175
  }
157
176
 
158
177
 
178
+
159
179
  ├── dist
160
180
  │ ├── foo.d.ts
161
181
  │ ├── foo.d.ts.map
@@ -210,6 +230,7 @@ exports[`'/basic-object-exports': Cli.run > link > output 1`] = `
210
230
  }
211
231
 
212
232
 
233
+
213
234
  ├── dist
214
235
  │ ├── index.d.ts -> ../index.ts
215
236
  │ └── index.js -> ../index.ts
@@ -270,6 +291,7 @@ exports[`'/multiple-entrypoint': Cli.run > default > output 1`] = `
270
291
  }
271
292
 
272
293
 
294
+
273
295
  ├── dist
274
296
  │ ├── nested
275
297
  │ │ └── dir
@@ -344,6 +366,7 @@ exports[`'/multiple-entrypoint': Cli.run > link > output 1`] = `
344
366
  }
345
367
 
346
368
 
369
+
347
370
  ├── dist
348
371
  │ ├── nested
349
372
  │ │ └── dir
@@ -404,6 +427,7 @@ exports[`'/single-entrypoint': Cli.run > default > output 1`] = `
404
427
  }
405
428
 
406
429
 
430
+
407
431
  ├── dist
408
432
  │ ├── foo.d.ts
409
433
  │ ├── foo.d.ts.map
@@ -458,6 +482,7 @@ exports[`'/single-entrypoint': Cli.run > link > output 1`] = `
458
482
  }
459
483
 
460
484
 
485
+
461
486
  ├── dist
462
487
  │ ├── index.d.ts -> ../index.ts
463
488
  │ └── index.js -> ../index.ts
@@ -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,24 +78,32 @@ 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
 
100
+
74
101
  ├── dist
75
102
  │ ├── cli.d.ts
76
103
  │ ├── cli.d.ts.map
77
104
  │ ├── cli.js
78
105
  │ ├── cli.js.map
106
+ │ ├── config.json
79
107
  │ ├── foo.d.ts
80
108
  │ ├── foo.d.ts.map
81
109
  │ ├── foo.js
@@ -85,6 +113,7 @@ exports[`'/basic': Package.build > default > output 1`] = `
85
113
  │ ├── index.js
86
114
  │ └── index.js.map
87
115
  ├── cli.ts
116
+ ├── config.json
88
117
  ├── foo.ts
89
118
  ├── index.ts
90
119
  ├── package.json
@@ -105,6 +134,12 @@ exports[`'/basic': Package.build > default > result 1`] = `
105
134
  "src": "./index.ts",
106
135
  "types": "./dist/index.d.ts",
107
136
  },
137
+ "./config": "./dist/config.json",
138
+ "./foo": {
139
+ "default": "./dist/foo.js",
140
+ "src": "./foo.ts",
141
+ "types": "./dist/foo.d.ts",
142
+ },
108
143
  },
109
144
  "main": "./dist/index.js",
110
145
  "module": "./dist/index.js",
@@ -138,6 +173,7 @@ exports[`'/basic': Package.build > default > result 1`] = `
138
173
  "include": [
139
174
  "/repos/basic/cli.ts",
140
175
  "/repos/basic/index.ts",
176
+ "/repos/basic/foo.ts",
141
177
  ],
142
178
  },
143
179
  }
@@ -172,23 +208,33 @@ exports[`'/basic': Package.build > link > output 1`] = `
172
208
  "basic.src": "./cli.ts"
173
209
  },
174
210
  "main": "./dist/index.js",
175
- "sideEffects": false,
176
- "module": "./dist/index.js",
177
- "types": "./dist/index.d.ts",
178
211
  "exports": {
179
212
  ".": {
180
213
  "src": "./index.ts",
181
214
  "types": "./dist/index.d.ts",
182
215
  "default": "./dist/index.js"
183
- }
184
- }
216
+ },
217
+ "./foo": {
218
+ "src": "./foo.ts",
219
+ "types": "./dist/foo.d.ts",
220
+ "default": "./dist/foo.js"
221
+ },
222
+ "./config": "./dist/config.json"
223
+ },
224
+ "sideEffects": false,
225
+ "module": "./dist/index.js",
226
+ "types": "./dist/index.d.ts"
185
227
  }
186
228
 
187
229
 
230
+
188
231
  ├── dist
232
+ │ ├── foo.d.ts -> ../foo.ts
233
+ │ ├── foo.js -> ../foo.ts
189
234
  │ ├── index.d.ts -> ../index.ts
190
235
  │ └── index.js -> ../index.ts
191
236
  ├── cli.ts
237
+ ├── config.json
192
238
  ├── foo.ts
193
239
  ├── index.ts
194
240
  ├── package.json
@@ -209,6 +255,12 @@ exports[`'/basic': Package.build > link > result 1`] = `
209
255
  "src": "./index.ts",
210
256
  "types": "./dist/index.d.ts",
211
257
  },
258
+ "./config": "./dist/config.json",
259
+ "./foo": {
260
+ "default": "./dist/foo.js",
261
+ "src": "./foo.ts",
262
+ "types": "./dist/foo.d.ts",
263
+ },
212
264
  },
213
265
  "main": "./dist/index.js",
214
266
  "module": "./dist/index.js",
@@ -302,6 +354,7 @@ exports[`'/basic-object-exports': Package.build > default > output 1`] = `
302
354
  }
303
355
 
304
356
 
357
+
305
358
  ├── dist
306
359
  │ ├── foo.d.ts
307
360
  │ ├── foo.d.ts.map
@@ -402,6 +455,7 @@ exports[`'/basic-object-exports': Package.build > link > output 1`] = `
402
455
  }
403
456
 
404
457
 
458
+
405
459
  ├── dist
406
460
  │ ├── index.d.ts -> ../index.ts
407
461
  │ └── index.js -> ../index.ts
@@ -562,6 +616,7 @@ exports[`'/multiple-entrypoint': Package.build > default > output 1`] = `
562
616
  }
563
617
 
564
618
 
619
+
565
620
  ├── dist
566
621
  │ ├── nested
567
622
  │ │ └── dir
@@ -694,6 +749,7 @@ exports[`'/multiple-entrypoint': Package.build > link > output 1`] = `
694
749
  }
695
750
 
696
751
 
752
+
697
753
  ├── dist
698
754
  │ ├── nested
699
755
  │ │ └── dir
@@ -826,6 +882,7 @@ exports[`'/single-entrypoint': Package.build > default > output 1`] = `
826
882
  }
827
883
 
828
884
 
885
+
829
886
  ├── dist
830
887
  │ ├── foo.d.ts
831
888
  │ ├── foo.d.ts.map
@@ -926,6 +983,7 @@ exports[`'/single-entrypoint': Package.build > link > output 1`] = `
926
983
  }
927
984
 
928
985
 
986
+
929
987
  ├── dist
930
988
  │ ├── index.d.ts -> ../index.ts
931
989
  │ └── index.js -> ../index.ts
@@ -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
  },