@temir.ra/create-ts-lib 0.6.0 → 0.6.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Version 0
2
2
 
3
+ ## 0.6.3
4
+
5
+ 1. Cleaned up dormant package scripts.
6
+ 2. Cleaned up minor `README.md` inconsistencies.
7
+
8
+ ## 0.6.2
9
+
10
+ 1. Updated `clean:tsbuildinfo` script to remove both `tsconfig.tsbuildinfo` and `tsconfig.build.tsbuildinfo`.
11
+
12
+ ## 0.6.1
13
+
14
+ 1. Cleaned up dormant imports.
15
+ 2. Cleaned up / updated minor `README.md` inconsistencies.
16
+ 3. Updated placeholders in `README.md` in the **Asset resolution** section.
17
+ 4. Removed **Asset resolution** section from the generated `README.md`, as the operational passage is given in the template `README.md`.
18
+ 5. Removed **AI Assistant Context** section from the `README.md` files.
19
+ 7. Cleaned up **Publish** section in the `README.md`.
20
+
3
21
  ## 0.6.0
4
22
 
5
23
  1. Updated documentation and configs to TypeScript 6.
package/README.md CHANGED
@@ -5,8 +5,7 @@ A template for TypeScript libraries distributed via npm-compatible registries. P
5
5
  ## Table of Contents
6
6
 
7
7
  1. [Quick Start](#quick-start)
8
- 2. [AI Assistant Context](#ai-assistant-context)
9
- 3. [Documentation](#documentation)
8
+ 2. [Documentation](#documentation)
10
9
  1. [`tsconfig.json` and `tsconfig.build.json`](#tsconfigjson-and-tsconfigbuildjson)
11
10
  2. [`package.json`](#packagejson)
12
11
  3. [Script `scripts/buildinfo.ts`](#script-scriptsbuildinfots)
@@ -22,11 +21,9 @@ A template for TypeScript libraries distributed via npm-compatible registries. P
22
21
  3. [README statement for library consumers](#readme-statement-for-library-consumers)
23
22
  4. [When the library is bundled by the consumer](#when-the-library-is-bundled-by-the-consumer)
24
23
  8. [`src/dev.ts`](#srcdevts)
25
- 4. [DevOps](#devops)
24
+ 3. [DevOps](#devops)
26
25
  1. [Change Management](#change-management)
27
26
  2. [Publish](#publish)
28
- 1. [npmjs.org](#npmjsorg)
29
- 2. [Custom registry](#custom-registry)
30
27
 
31
28
  # Quick Start
32
29
 
@@ -54,15 +51,9 @@ cd <NEW_PACKAGE>
54
51
  bun install
55
52
  ```
56
53
 
57
- # AI Assistant Context
58
-
59
- To generate an AI coding assistant context file for this project:
60
-
61
- > Generate an AI coding assistant context file. Analyze the project structure and source files, using this README as the primary reference for architecture and conventions. Give particular attention to: the dual tsconfig setup and the import constraints it imposes, the `#src/*.js` alias and where it may and may not be used, the custom `entrypoint` export condition, and the asset resolution contract.
62
-
63
54
  # Documentation
64
55
 
65
- The following sections explain the configurations and conventions baked into the generated package. Useful when adapting the generated package to fit a specific library's needs.
56
+ The following sections explain the configurations and conventions baked into the generated package. Useful when adapting it to fit specific needs.
66
57
 
67
58
  ## `tsconfig.json` and `tsconfig.build.json`
68
59
 
@@ -78,6 +69,7 @@ See the typescriptlang documentation on [tsconfig.json](https://www.typescriptla
78
69
  "target": "ESNext",
79
70
 
80
71
  // output module format; ESNext passes ES module syntax through unchanged
72
+ // ES module syntax: import/export statements (as opposed to CommonJS require()/module.exports)
81
73
  "module": "ESNext",
82
74
 
83
75
  // type definitions for built-in APIs
@@ -252,7 +244,7 @@ See npmjs documentation on [package.json](https://docs.npmjs.com/cli/v11/configu
252
244
  "scripts": {
253
245
 
254
246
  "clean:dist": "rm -rf dist/",
255
- "clean:tsbuildinfo": "rm -f tsconfig.build.tsbuildinfo",
247
+ "clean:tsbuildinfo": "rm -f tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo",
256
248
  "clean": "bun run clean:dist && bun run clean:tsbuildinfo",
257
249
 
258
250
  // lifecycle hook; runs automatically before "build"; generates buildinfo.txt
@@ -266,8 +258,6 @@ See npmjs documentation on [package.json](https://docs.npmjs.com/cli/v11/configu
266
258
  // bundles the library into ESM and IIFE formats for distribution
267
259
  "build:lib-bundle": "bun run scripts/build-lib-bundle.ts",
268
260
 
269
- "build:cli-bundle": "bun build src/cli.ts --entry-naming \"[dir]/[name].bundle.[ext]\" --outdir dist --target node --format esm --minify --sourcemap=external",
270
-
271
261
  "typecheck": "tsc --noEmit",
272
262
 
273
263
  // runs src/dev.ts in watch mode
@@ -322,14 +312,21 @@ For CLI packages, add the following to `package.json`:
322
312
 
323
313
  The key question to ask is: **does my library retain its own URL at runtime?** Everything else follows from it.
324
314
 
315
+ ```bash
316
+ # placeholder:
317
+ # <@SCOPE: <@SCOPE>
318
+ # <LIB_NAME: <LIB_NAME>
319
+ # <VERSION: <VERSION>
320
+ ```
321
+
325
322
  ### Externalized - loaded from CDN or `node_modules/`
326
323
 
327
324
  The consumer does not bundle the library. It is loaded as a discrete module at runtime. Module identity is preserved regardless of the URL form:
328
325
 
329
326
  ```
330
- https://cdn.jsdelivr.net/npm/@scope/lib-name@1.0.0/dist/index.js
331
- file:///project/node_modules/@scope/lib-name/dist/index.js
332
- https://your-own-cdn.com/lib-name/index.js
327
+ https://cdn.jsdelivr.net/npm/<@SCOPE>/<LIB_NAME>@<VERSION>/dist/index.js
328
+ file:///project/node_modules/<@SCOPE>/<LIB_NAME>/dist/index.js
329
+ https://your-own-cdn.com/<LIB_NAME>/index.js
333
330
  ```
334
331
 
335
332
  `import.meta.url` is reliable in all these cases. `fetch()` is the correct I/O mechanism because it accepts both `https://` and `file://` URLs, making it universally correct for isomorphic (`--target node` or `--target browser`) libraries.
@@ -361,12 +358,12 @@ Place all runtime assets under a scoped directory that mirrors the package name:
361
358
 
362
359
  ```
363
360
  assets/
364
- └── @scope/
365
- └── lib-name/
366
- └── <ASSETS>
361
+ └── <@SCOPE>/
362
+ └── <LIB_NAME>/
363
+ └── ...
367
364
  ```
368
365
 
369
- This prevents naming collisions when multiple libraries are bundled into the same consumer app. Each library's assets live under their own namespace; no library can shadow another's files.
366
+ This also prevents naming collisions when multiple libraries are bundled into the same consumer app. Each library's assets live under their own namespace; no library can shadow another's files.
370
367
 
371
368
  Add `assets/` to the `files` field in `package.json` so that the assets are included in the published package:
372
369
 
@@ -385,13 +382,13 @@ Construct asset URLs directly from `import.meta.url`.
385
382
 
386
383
  ```typescript
387
384
  const packageUrl = new URL('../', import.meta.url);
388
- const assetsUrl = new URL('assets/@scope/lib-name/', packageUrl);
385
+ const assetsUrl = new URL('assets/<@SCOPE>/<LIB_NAME>/', packageUrl);
389
386
 
390
387
  // for --target browser
391
388
  const asset = await fetch(new URL('<ASSET>', assetsUrl)).then(r => r.json());
392
389
 
393
390
  // for --target node
394
- import { readFile } from 'node:fs/promises';
391
+ import { readFile } from 'fs/promises';
395
392
  import { fileURLToPath } from 'url';
396
393
  const asset = JSON.parse(await readFile(fileURLToPath(new URL('<ASSET>', assetsUrl)), 'utf-8'));
397
394
  ```
@@ -399,14 +396,9 @@ const asset = JSON.parse(await readFile(fileURLToPath(new URL('<ASSET>', assetsU
399
396
  ### README statement for library consumers
400
397
 
401
398
  ```markdown
402
- <!-- placeholder:
403
- <SCOPE: <SCOPE>
404
- <LIB_NAME: <LIB_NAME>
405
- -->
406
-
407
399
  ## Asset resolution
408
400
 
409
- This library resolves assets at runtime using `import.meta.url`. If you bundle this library into your application, copy `node_modules/<SCOPE>/<LIB_NAME>/assets/<SCOPE>/<LIB_NAME>/` into your build output directory alongside your bundle.
401
+ This library resolves assets at runtime using `import.meta.url`. If you bundle this library into your application, copy `node_modules/<@SCOPE>/<LIB_NAME>/assets/<@SCOPE>/<LIB_NAME>/` into your build output directory alongside your bundle.
410
402
  ```
411
403
 
412
404
  #### When the library is bundled by the consumer
@@ -417,12 +409,12 @@ The consumer must copy the assets into their build output at the same relative p
417
409
  consumer output/
418
410
  ├── bundle.js ← import.meta.url points here
419
411
  └── assets/
420
- └── @scope/
421
- └── lib-name/
422
- └── <ASSETS> ← copied; relative path preserved
412
+ └── <@SCOPE>/
413
+ └── <LIB_NAME>/
414
+ └── ... ← copied; relative path preserved
423
415
  ```
424
416
 
425
- From the bundle's perspective `assets/@scope/lib-name/` is at the same directory level as `bundle.js`, so `new URL('assets/@scope/lib-name/<ASSETS>', import.meta.url)` resolves correctly. No code configuration is needed - only the file copy.
417
+ From the bundle's perspective `assets/<@SCOPE>/<LIB_NAME>/` is at the same directory level as `bundle.js`, so `new URL('assets/<@SCOPE>/<LIB_NAME>/...', import.meta.url)` resolves correctly. No code configuration is needed - only the file copy.
426
418
 
427
419
  ## `src/dev.ts`
428
420
 
@@ -431,13 +423,13 @@ Development scratchpad - not published, excluded from `tsconfig.build.json`. Run
431
423
  # DevOps
432
424
 
433
425
  ```bash
434
- # remove dist/ and tsconfig.build.tsbuildinfo
426
+ # remove dist/ and tsconfig.tsbuildinfo and tsconfig.build.tsbuildinfo
435
427
  bun run clean
436
428
 
437
429
  # remove dist/ only
438
430
  bun run clean:dist
439
431
 
440
- # remove tsconfig.build.tsbuildinfo only
432
+ # remove tsconfig.tsbuildinfo and tsconfig.build.tsbuildinfo only
441
433
  bun run clean:tsbuildinfo
442
434
 
443
435
  # compile + bundle
@@ -459,15 +451,6 @@ bun run dist/cli.bundle.js -- example
459
451
 
460
452
  ## Publish
461
453
 
462
- See the following sources to configure the target registry and authentication.
463
-
464
- - [Configuring npm - `npmrc`](https://docs.npmjs.com/cli/v10/configuring-npm/npmrc)
465
- - [Bun package manager - `install.registry`](https://bun.com/docs/runtime/bunfig#install-scopes)
466
-
467
- ⚠️ Package Scope and the authentication for the target registry must be aligned.
468
-
469
- ### `npmjs.org`
470
-
471
454
  Publish to the public npm registry.
472
455
 
473
456
  ```powershell
@@ -476,26 +459,3 @@ npm login
476
459
  # publish
477
460
  bun publish --registry https://registry.npmjs.org/ --access public
478
461
  ```
479
-
480
- ### Custom registry
481
-
482
- ```bash
483
- # placeholder:
484
- # <SCOPE_WITHOUT_AT: <SCOPE_WITHOUT_AT>
485
- # <REGISTRY_URL: <REGISTRY_URL>
486
- # <BUN_PUBLISH_AUTH_TOKEN: <BUN_PUBLISH_AUTH_TOKEN>
487
- ```
488
-
489
- `~/.bunfig.toml` or `bunfig.toml`:
490
-
491
- ```toml
492
- [install.scopes]
493
- "<SCOPE_WITHOUT_AT>" = { url = "<REGISTRY_URL>", token = "$BUN_PUBLISH_AUTH_TOKEN" }
494
- ```
495
-
496
- ```powershell
497
- # authenticate
498
- $env:BUN_PUBLISH_AUTH_TOKEN = "<BUN_PUBLISH_AUTH_TOKEN>"
499
- # publish
500
- bun publish
501
- ```
package/buildinfo.txt CHANGED
@@ -1 +1 @@
1
- 0.6.0+bf23035
1
+ 0.6.3+0b0d257
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["..\\src\\cli.ts", "..\\src\\constants.ts"],
4
4
  "sourcesContent": [
5
- "#!/usr/bin/env node\r\n\r\nimport { cpSync, readFileSync, renameSync, writeFileSync } from 'fs';\r\nimport { resolve, basename } from 'path';\r\nimport {\r\n templatePath,\r\n changelogPath,\r\n buildinfoPath,\r\n readmePath\r\n} from './constants.js';\r\n\r\n\r\ntry {\r\n\r\n const packageNameArgument = process.argv[2];\r\n if (!packageNameArgument) throw new Error('Package name argument is required. Usage: `create-ts-lib <package-name>`');\r\n const packageName = packageNameArgument.replace(/\\\\/g, '/');\r\n\r\n const destinationPath = resolve(process.cwd(), packageName);\r\n\r\n cpSync(templatePath, destinationPath, { recursive: true });\r\n cpSync(changelogPath, resolve(destinationPath, 'CHANGELOG-template.md'));\r\n cpSync(buildinfoPath, resolve(destinationPath, 'buildinfo-template.txt'));\r\n cpSync(readmePath, resolve(destinationPath, 'README-template.md'));\r\n\r\n const packageJsonPath = resolve(destinationPath, 'package.json');\r\n const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\r\n packageJson.name = packageName;\r\n writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));\r\n\r\n renameSync(resolve(destinationPath, 'gitignore'), resolve(destinationPath, '.gitignore'));\r\n\r\n console.log(`Template has been successfully instantiated at '${destinationPath}' with package name '${packageName}'.`);\r\n\r\n}\r\ncatch (error) {\r\n const err = error instanceof Error ? error : new Error(String(error));\r\n console.error('Error:', err.message);\r\n process.exit(1);\r\n}\r\n",
5
+ "#!/usr/bin/env node\r\n\r\nimport { cpSync, readFileSync, renameSync, writeFileSync } from 'fs';\r\nimport { resolve } from 'path';\r\nimport {\r\n templatePath,\r\n changelogPath,\r\n buildinfoPath,\r\n readmePath\r\n} from './constants.js';\r\n\r\n\r\ntry {\r\n\r\n const packageNameArgument = process.argv[2];\r\n if (!packageNameArgument) throw new Error('Package name argument is required. Usage: `create-ts-lib <package-name>`');\r\n const packageName = packageNameArgument.replace(/\\\\/g, '/');\r\n\r\n const destinationPath = resolve(process.cwd(), packageName);\r\n\r\n cpSync(templatePath, destinationPath, { recursive: true });\r\n cpSync(changelogPath, resolve(destinationPath, 'CHANGELOG-template.md'));\r\n cpSync(buildinfoPath, resolve(destinationPath, 'buildinfo-template.txt'));\r\n cpSync(readmePath, resolve(destinationPath, 'README-template.md'));\r\n\r\n const packageJsonPath = resolve(destinationPath, 'package.json');\r\n const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\r\n packageJson.name = packageName;\r\n writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));\r\n\r\n renameSync(resolve(destinationPath, 'gitignore'), resolve(destinationPath, '.gitignore'));\r\n\r\n console.log(`Template has been successfully instantiated at '${destinationPath}' with package name '${packageName}'.`);\r\n\r\n}\r\ncatch (error) {\r\n const err = error instanceof Error ? error : new Error(String(error));\r\n console.error('Error:', err.message);\r\n process.exit(1);\r\n}\r\n",
6
6
  "import { resolve } from 'path';\r\nimport { fileURLToPath } from 'url';\r\n\r\n\r\nexport const packageUrl: URL = new URL('../', import.meta.url);\r\nexport const packagePath: string = resolve(fileURLToPath(packageUrl));\r\n\r\nexport const templatePath: string = resolve(packagePath, 'template/');\r\n\r\nexport const changelogPath: string = resolve(packagePath, 'CHANGELOG.md');\r\nexport const buildinfoPath: string = resolve(packagePath, 'buildinfo.txt');\r\nexport const readmePath: string = resolve(packagePath, 'README.md');\r\n"
7
7
  ],
8
8
  "mappings": ";AAEA,iBAAS,kBAAQ,gBAAc,mBAAY,WAC3C,kBAAS,aCHT,kBAAS,aACT,wBAAS,YAGF,IAAM,EAAkB,IAAI,IAAI,MAAO,YAAY,GAAG,EAChD,EAAsB,EAAQ,EAAc,CAAU,CAAC,EAEvD,EAAuB,EAAQ,EAAa,WAAW,EAEvD,EAAwB,EAAQ,EAAa,cAAc,EAC3D,EAAwB,EAAQ,EAAa,eAAe,EAC5D,EAAqB,EAAQ,EAAa,WAAW,EDClE,GAAI,CAEA,IAAM,EAAsB,QAAQ,KAAK,GACzC,GAAI,CAAC,EAAqB,MAAU,MAAM,0EAA0E,EACpH,IAAM,EAAc,EAAoB,QAAQ,MAAO,GAAG,EAEpD,EAAkB,EAAQ,QAAQ,IAAI,EAAG,CAAW,EAE1D,EAAO,EAAc,EAAiB,CAAE,UAAW,EAAK,CAAC,EACzD,EAAO,EAAe,EAAQ,EAAiB,uBAAuB,CAAC,EACvE,EAAO,EAAe,EAAQ,EAAiB,wBAAwB,CAAC,EACxE,EAAO,EAAY,EAAQ,EAAiB,oBAAoB,CAAC,EAEjE,IAAM,EAAkB,EAAQ,EAAiB,cAAc,EACzD,EAAc,KAAK,MAAM,EAAa,EAAiB,OAAO,CAAC,EACrE,EAAY,KAAO,EACnB,EAAc,EAAiB,KAAK,UAAU,EAAa,KAAM,CAAC,CAAC,EAEnE,EAAW,EAAQ,EAAiB,WAAW,EAAG,EAAQ,EAAiB,YAAY,CAAC,EAExF,QAAQ,IAAI,mDAAmD,yBAAuC,KAAe,EAGzH,MAAO,EAAO,CACV,IAAM,EAAM,aAAiB,MAAQ,EAAY,MAAM,OAAO,CAAK,CAAC,EACpE,QAAQ,MAAM,SAAU,EAAI,OAAO,EACnC,QAAQ,KAAK,CAAC",
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { cpSync, readFileSync, renameSync, writeFileSync } from 'fs';
3
- import { resolve, basename } from 'path';
3
+ import { resolve } from 'path';
4
4
  import { templatePath, changelogPath, buildinfoPath, readmePath } from './constants.js';
5
5
  try {
6
6
  const packageNameArgument = process.argv[2];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temir.ra/create-ts-lib",
3
- "version": "0.6.0",
3
+ "version": "0.6.3",
4
4
  "description": "Typescript library template",
5
5
  "author": "temir.ra",
6
6
  "license": "MIT",
@@ -27,15 +27,14 @@
27
27
  ],
28
28
  "scripts": {
29
29
  "clean:dist": "rm -rf dist/",
30
- "clean:tsbuildinfo": "rm -f tsconfig.build.tsbuildinfo",
30
+ "clean:tsbuildinfo": "rm -f tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo",
31
31
  "clean": "bun run clean:dist && bun run clean:tsbuildinfo",
32
32
  "prebuild": "bun run scripts/buildinfo.ts",
33
33
  "tests": "bun test",
34
34
  "build": "bun run build:lib && bun run build:cli-bundle",
35
35
  "build:lib": "tsc --project tsconfig.build.json",
36
36
  "build:cli-bundle": "bun build src/cli.ts --entry-naming \"[dir]/[name].bundle.[ext]\" --outdir dist --target node --format esm --minify --sourcemap=external",
37
- "typecheck": "tsc --noEmit",
38
- "dev": "bun run --watch src/dev.ts"
37
+ "typecheck": "tsc --noEmit"
39
38
  },
40
39
  "devDependencies": {
41
40
  "@types/bun": "latest",
@@ -5,9 +5,8 @@
5
5
  ## Table of Contents
6
6
 
7
7
  1. [Quick Start](#quick-start)
8
- 2. [AI Assistant Context](#ai-assistant-context)
9
- 3. [Documentation](#documentation)
10
- 4. [DevOps](#devops)
8
+ 2. [Documentation](#documentation)
9
+ 3. [DevOps](#devops)
11
10
  1. [Change Management](#change-management)
12
11
  2. [Publish](#publish)
13
12
  1. [npmjs.org](#npmjsorg)
@@ -16,13 +15,13 @@
16
15
  # Quick Start
17
16
 
18
17
  ```bash
19
- # remove dist/ and tsconfig.build.tsbuildinfo
18
+ # remove dist/ and tsconfig.tsbuildinfo and tsconfig.build.tsbuildinfo
20
19
  bun run clean
21
20
 
22
21
  # remove dist/ only
23
22
  bun run clean:dist
24
23
 
25
- # remove tsconfig.build.tsbuildinfo only
24
+ # remove tsconfig.tsbuildinfo and tsconfig.build.tsbuildinfo only
26
25
  bun run clean:tsbuildinfo
27
26
 
28
27
  # compile + bundle
@@ -35,30 +34,10 @@ bun run tests
35
34
  bun run dev
36
35
  ```
37
36
 
38
- **Publish** - see [Publish](#publish).
39
-
40
- # AI Assistant Context
41
-
42
- To generate an AI coding assistant context file for this project:
43
-
44
- > Generate an AI coding assistant context file. `README-template.md` is available now and documents the architectural conventions of this package — use it as your primary source. The generated context file must be self-contained: `README-template.md` will be deleted after context generation, so do not reference it in the output. Give particular attention to: the dual tsconfig setup and the import constraints it imposes, the `#src/*.js` alias and where it may and may not be used, the custom `entrypoint` export condition, and the asset resolution contract.
45
-
46
37
  # Documentation
47
38
 
48
39
  *&lt;DOCUMENTATION&gt;*
49
40
 
50
- ## Asset Resolution
51
-
52
- *&lt;!-- Remove this section if the library has no runtime assets. Replace `@scope/lib-name` throughout with the actual package name. --&gt;*
53
-
54
- Assets are placed under `assets/@scope/lib-name/` (scoped to the package name to prevent collisions). They are resolved at runtime via `import.meta.url` and loaded with `fetch()` (browser) or `readFile` (Node). `assets/` must be listed in `files` in `package.json`.
55
-
56
- `import.meta.url` is reliable when the library is loaded as a discrete module (from CDN or `node_modules/`). When the consumer bundles the library, they must copy the assets - see below.
57
-
58
- ### For consumers bundling this library
59
-
60
- Copy `node_modules/@scope/lib-name/assets/` into your build output alongside the bundle, preserving the relative path. No code configuration is required - only the file copy.
61
-
62
41
  # DevOps
63
42
 
64
43
  ## Change Management
@@ -95,9 +74,9 @@ bun publish --registry https://registry.npmjs.org/ --access public
95
74
 
96
75
  ```bash
97
76
  # placeholder:
98
- # <SCOPE_WITHOUT_AT: <SCOPE_WITHOUT_AT>
99
- # <REGISTRY_URL: <REGISTRY_URL>
100
- # <BUN_PUBLISH_AUTH_TOKEN: <BUN_PUBLISH_AUTH_TOKEN>
77
+ # <SCOPE_WITHOUT_AT: <SCOPE_WITHOUT_AT>
78
+ # <REGISTRY_URL: <REGISTRY_URL>
79
+ # <BUN_PUBLISH_AUTH_TOKEN: <BUN_PUBLISH_AUTH_TOKEN>
101
80
  ```
102
81
 
103
82
  `~/.bunfig.toml` or `bunfig.toml`:
@@ -30,7 +30,7 @@
30
30
  ],
31
31
  "scripts": {
32
32
  "clean:dist": "rm -rf dist/",
33
- "clean:tsbuildinfo": "rm -f tsconfig.build.tsbuildinfo",
33
+ "clean:tsbuildinfo": "rm -f tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo",
34
34
  "clean": "bun run clean:dist && bun run clean:tsbuildinfo",
35
35
  "prebuild": "bun run scripts/buildinfo.ts",
36
36
  "tests": "bun test",