@a35hie/ts-pkg 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -5
- package/dist/cli.js +189 -23
- package/dist/main.js +1 -17
- package/dist/main.js.map +2 -2
- package/package.json +6 -9
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
Define your package configuration in TypeScript with type safety, auto-complete, and powerful features like automatic version resolution, script presets, config inheritance, and conditional configuration.
|
|
6
6
|
|
|
7
|
+
> IMPORTANT: It is imperative to read this page before using this package.
|
|
8
|
+
|
|
7
9
|
## Features
|
|
8
10
|
|
|
9
11
|
- **Auto-resolve versions** – List package names, latest versions are fetched automatically
|
|
@@ -15,7 +17,7 @@ Define your package configuration in TypeScript with type safety, auto-complete,
|
|
|
15
17
|
## Installation
|
|
16
18
|
|
|
17
19
|
```bash
|
|
18
|
-
bun add -D ts-pkg
|
|
20
|
+
bun add -D @a35hie/ts-pkg
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
## Usage
|
|
@@ -23,7 +25,7 @@ bun add -D ts-pkg-config
|
|
|
23
25
|
Create a `package.config.ts` file:
|
|
24
26
|
|
|
25
27
|
```typescript
|
|
26
|
-
import { definePackageConfig } from 'ts-pkg
|
|
28
|
+
import { definePackageConfig } from '@a35hie/ts-pkg'
|
|
27
29
|
|
|
28
30
|
export default definePackageConfig({
|
|
29
31
|
name: 'my-awesome-package',
|
|
@@ -41,8 +43,8 @@ export default definePackageConfig({
|
|
|
41
43
|
|
|
42
44
|
// ✨ Just list packages - versions resolved automatically!
|
|
43
45
|
dependencies: [
|
|
44
|
-
'lodash', // → "lodash": "^4.17.
|
|
45
|
-
'zod', // → "zod": "^3.
|
|
46
|
+
'lodash', // → "lodash": "^4.17.23"
|
|
47
|
+
'zod', // → "zod": "^4.3.6"
|
|
46
48
|
],
|
|
47
49
|
|
|
48
50
|
devDependencies: [
|
|
@@ -75,6 +77,21 @@ bunx ts-pkg
|
|
|
75
77
|
bunx ts-pkg package.config.ts package.json
|
|
76
78
|
```
|
|
77
79
|
|
|
80
|
+
## Syncing Dependencies
|
|
81
|
+
|
|
82
|
+
When you install packages with `bun add` or `npm install`, sync them back to your config:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# After installing packages
|
|
86
|
+
bun add lodash axios
|
|
87
|
+
ts-pkg sync
|
|
88
|
+
|
|
89
|
+
# Or specify paths
|
|
90
|
+
ts-pkg sync package.config.ts package.json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
This keeps your `package.config.ts` as the source of truth while still allowing quick installs via your package manager.
|
|
94
|
+
|
|
78
95
|
## Script Presets
|
|
79
96
|
|
|
80
97
|
| Preset | Scripts |
|
|
@@ -109,7 +126,7 @@ export default definePackageConfig({
|
|
|
109
126
|
|
|
110
127
|
## Conditional Configuration
|
|
111
128
|
|
|
112
|
-
Apply different settings based on environment:
|
|
129
|
+
Apply different settings based on the environment:
|
|
113
130
|
|
|
114
131
|
```typescript
|
|
115
132
|
conditions: [
|
package/dist/cli.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
|
-
var __create = Object.create;
|
|
4
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __toESM = (mod, isNodeMode, target) => {
|
|
9
|
-
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
10
|
-
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
11
|
-
for (let key of __getOwnPropNames(mod))
|
|
12
|
-
if (!__hasOwnProp.call(to, key))
|
|
13
|
-
__defProp(to, key, {
|
|
14
|
-
get: () => mod[key],
|
|
15
|
-
enumerable: true
|
|
16
|
-
});
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
3
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
20
4
|
|
|
21
5
|
// src/presets/scripts.ts
|
|
@@ -276,13 +260,170 @@ async function writePackageJson(config, options = {}) {
|
|
|
276
260
|
console.log(`✨ Generated ${outputPath}`);
|
|
277
261
|
}
|
|
278
262
|
|
|
279
|
-
// src/
|
|
263
|
+
// src/sync/syncDependencies.ts
|
|
264
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
280
265
|
import { resolve } from "node:path";
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
266
|
+
function depsObjectToArray(deps) {
|
|
267
|
+
if (!deps)
|
|
268
|
+
return [];
|
|
269
|
+
return Object.keys(deps).sort();
|
|
270
|
+
}
|
|
271
|
+
function formatDepsArray(deps, indent = " ") {
|
|
272
|
+
if (deps.length === 0)
|
|
273
|
+
return "[]";
|
|
274
|
+
if (deps.length === 1)
|
|
275
|
+
return `['${deps[0]}']`;
|
|
276
|
+
return `[
|
|
277
|
+
${deps.map((d) => `${indent}'${d}',`).join(`
|
|
278
|
+
`)}
|
|
279
|
+
]`;
|
|
280
|
+
}
|
|
281
|
+
async function syncDependencies(options = {}) {
|
|
282
|
+
const {
|
|
283
|
+
packageJsonPath = "package.json",
|
|
284
|
+
configPath = "package.config.ts",
|
|
285
|
+
quiet = false,
|
|
286
|
+
delay = 0
|
|
287
|
+
} = options;
|
|
288
|
+
if (delay > 0) {
|
|
289
|
+
await new Promise((resolve2) => setTimeout(resolve2, delay));
|
|
290
|
+
}
|
|
291
|
+
const absolutePackageJsonPath = resolve(process.cwd(), packageJsonPath);
|
|
285
292
|
const absoluteConfigPath = resolve(process.cwd(), configPath);
|
|
293
|
+
let packageJson;
|
|
294
|
+
try {
|
|
295
|
+
const packageJsonContent = await readFile(absolutePackageJsonPath, "utf-8");
|
|
296
|
+
packageJson = JSON.parse(packageJsonContent);
|
|
297
|
+
} catch (error) {
|
|
298
|
+
const err = error;
|
|
299
|
+
if (err.code === "ENOENT") {
|
|
300
|
+
console.error(`× package.json not found: ${packageJsonPath}`);
|
|
301
|
+
process.exit(1);
|
|
302
|
+
}
|
|
303
|
+
throw error;
|
|
304
|
+
}
|
|
305
|
+
let configContent;
|
|
306
|
+
try {
|
|
307
|
+
configContent = await readFile(absoluteConfigPath, "utf-8");
|
|
308
|
+
} catch (error) {
|
|
309
|
+
const err = error;
|
|
310
|
+
if (err.code === "ENOENT") {
|
|
311
|
+
console.error(`× Config file not found: ${configPath}`);
|
|
312
|
+
console.error("Run ts-pkg init first to create a package.config.ts");
|
|
313
|
+
process.exit(1);
|
|
314
|
+
}
|
|
315
|
+
throw error;
|
|
316
|
+
}
|
|
317
|
+
const deps = depsObjectToArray(packageJson.dependencies);
|
|
318
|
+
const devDeps = depsObjectToArray(packageJson.devDependencies);
|
|
319
|
+
const peerDeps = depsObjectToArray(packageJson.peerDependencies);
|
|
320
|
+
let updatedContent = configContent;
|
|
321
|
+
updatedContent = updateDepsInConfig(updatedContent, "dependencies", deps);
|
|
322
|
+
updatedContent = updateDepsInConfig(updatedContent, "devDependencies", devDeps);
|
|
323
|
+
updatedContent = updateDepsInConfig(updatedContent, "peerDependencies", peerDeps);
|
|
324
|
+
await writeFile(absoluteConfigPath, updatedContent);
|
|
325
|
+
if (!quiet) {
|
|
326
|
+
console.log(`✨ Synced dependencies to ${configPath}`);
|
|
327
|
+
if (deps.length)
|
|
328
|
+
console.log(` dependencies: ${deps.length} packages`);
|
|
329
|
+
if (devDeps.length)
|
|
330
|
+
console.log(` devDependencies: ${devDeps.length} packages`);
|
|
331
|
+
if (peerDeps.length)
|
|
332
|
+
console.log(` peerDependencies: ${peerDeps.length} packages`);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
function findArrayEnd(content, startIndex) {
|
|
336
|
+
let depth = 0;
|
|
337
|
+
for (let i = startIndex;i < content.length; i++) {
|
|
338
|
+
if (content[i] === "[")
|
|
339
|
+
depth++;
|
|
340
|
+
else if (content[i] === "]") {
|
|
341
|
+
depth--;
|
|
342
|
+
if (depth === 0)
|
|
343
|
+
return i;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return -1;
|
|
347
|
+
}
|
|
348
|
+
function updateDepsInConfig(content, depType, deps) {
|
|
349
|
+
const formattedDeps = formatDepsArray(deps);
|
|
350
|
+
const fieldPattern = new RegExp(`(${depType}:\\s*)\\[`);
|
|
351
|
+
const match = fieldPattern.exec(content);
|
|
352
|
+
if (match && match[1]) {
|
|
353
|
+
const arrayStart = match.index + match[1].length;
|
|
354
|
+
const arrayEnd = findArrayEnd(content, arrayStart);
|
|
355
|
+
if (arrayEnd !== -1) {
|
|
356
|
+
return content.slice(0, arrayStart) + formattedDeps + content.slice(arrayEnd + 1);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
if (deps.length > 0) {
|
|
360
|
+
const insertPatterns = [
|
|
361
|
+
{ pattern: /peerDependencies:\s*\[/, after: true },
|
|
362
|
+
{ pattern: /devDependencies:\s*\[/, after: true },
|
|
363
|
+
{ pattern: /dependencies:\s*\[/, after: true },
|
|
364
|
+
{ pattern: /(\n\s*)(conditions:\s*\[)/, before: true },
|
|
365
|
+
{ pattern: /(\n\s*)(engines:\s*\{)/, before: true }
|
|
366
|
+
];
|
|
367
|
+
for (const { pattern, after, before } of insertPatterns) {
|
|
368
|
+
const m = pattern.exec(content);
|
|
369
|
+
if (m) {
|
|
370
|
+
if (after) {
|
|
371
|
+
const arrStart = m.index + m[0].length - 1;
|
|
372
|
+
const arrEnd = findArrayEnd(content, arrStart);
|
|
373
|
+
if (arrEnd !== -1) {
|
|
374
|
+
let insertPos = arrEnd + 1;
|
|
375
|
+
let char = content[insertPos];
|
|
376
|
+
while (insertPos < content.length && char && /[,\s]/.test(char) && char !== `
|
|
377
|
+
`) {
|
|
378
|
+
insertPos++;
|
|
379
|
+
char = content[insertPos];
|
|
380
|
+
}
|
|
381
|
+
if (content[insertPos] === `
|
|
382
|
+
`)
|
|
383
|
+
insertPos++;
|
|
384
|
+
return content.slice(0, insertPos) + `
|
|
385
|
+
${depType}: ${formattedDeps},
|
|
386
|
+
` + content.slice(insertPos);
|
|
387
|
+
}
|
|
388
|
+
} else if (before) {
|
|
389
|
+
return content.replace(pattern, `$1${depType}: ${formattedDeps},
|
|
390
|
+
$1$2`);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return content;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
// src/cli.ts
|
|
399
|
+
import { resolve as resolve2 } from "node:path";
|
|
400
|
+
import { pathToFileURL } from "node:url";
|
|
401
|
+
function printHelp() {
|
|
402
|
+
console.log(`
|
|
403
|
+
ts-pkg - TypeScript-based package.json generator
|
|
404
|
+
|
|
405
|
+
Usage:
|
|
406
|
+
ts-pkg [configPath] [outputPath] Generate package.json from config
|
|
407
|
+
ts-pkg sync [configPath] [packageJsonPath] Sync deps from package.json to config
|
|
408
|
+
ts-pkg help Show this help message
|
|
409
|
+
|
|
410
|
+
Commands:
|
|
411
|
+
(default) Generate package.json from package.config.ts
|
|
412
|
+
sync Sync dependencies from package.json back to package.config.ts
|
|
413
|
+
|
|
414
|
+
Examples:
|
|
415
|
+
ts-pkg # Generate from package.config.ts
|
|
416
|
+
ts-pkg my.config.ts # Generate from custom config
|
|
417
|
+
ts-pkg sync # Sync deps to package.config.ts
|
|
418
|
+
ts-pkg sync package.config.ts package.json
|
|
419
|
+
|
|
420
|
+
Postinstall setup:
|
|
421
|
+
Add to your package.json scripts:
|
|
422
|
+
"postinstall": "ts-pkg sync"
|
|
423
|
+
`);
|
|
424
|
+
}
|
|
425
|
+
async function runGenerate(configPath, outputPath) {
|
|
426
|
+
const absoluteConfigPath = resolve2(process.cwd(), configPath);
|
|
286
427
|
try {
|
|
287
428
|
const configModule = await import(pathToFileURL(absoluteConfigPath).href);
|
|
288
429
|
const config = configModule.default ?? configModule;
|
|
@@ -290,7 +431,7 @@ async function main() {
|
|
|
290
431
|
} catch (error) {
|
|
291
432
|
const err = error;
|
|
292
433
|
if (err.code === "ERR_MODULE_NOT_FOUND" || err.code === "ENOENT") {
|
|
293
|
-
console.error(
|
|
434
|
+
console.error(`× Config file not found: ${configPath}`);
|
|
294
435
|
console.error(`
|
|
295
436
|
Create a package.config.ts file with:`);
|
|
296
437
|
console.error(`
|
|
@@ -306,8 +447,33 @@ export default definePackageConfig({
|
|
|
306
447
|
`);
|
|
307
448
|
process.exit(1);
|
|
308
449
|
}
|
|
309
|
-
console.error("
|
|
450
|
+
console.error("× Error:", err.message);
|
|
310
451
|
process.exit(1);
|
|
311
452
|
}
|
|
312
453
|
}
|
|
454
|
+
async function runSync(configPath, packageJsonPath) {
|
|
455
|
+
const isPostinstall = process.env.npm_lifecycle_event === "postinstall";
|
|
456
|
+
await syncDependencies({
|
|
457
|
+
configPath,
|
|
458
|
+
packageJsonPath,
|
|
459
|
+
delay: isPostinstall ? 100 : 0
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
async function main() {
|
|
463
|
+
const args = process.argv.slice(2);
|
|
464
|
+
const command = args[0];
|
|
465
|
+
if (command === "help" || command === "--help" || command === "-h") {
|
|
466
|
+
printHelp();
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
if (command === "sync") {
|
|
470
|
+
const configPath2 = args[1] ?? "package.config.ts";
|
|
471
|
+
const packageJsonPath = args[2] ?? "package.json";
|
|
472
|
+
await runSync(configPath2, packageJsonPath);
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
const configPath = args[0] ?? "package.config.ts";
|
|
476
|
+
const outputPath = args[1] ?? "package.json";
|
|
477
|
+
await runGenerate(configPath, outputPath);
|
|
478
|
+
}
|
|
313
479
|
main();
|
package/dist/main.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __toESM = (mod, isNodeMode, target) => {
|
|
8
|
-
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
9
|
-
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
10
|
-
for (let key of __getOwnPropNames(mod))
|
|
11
|
-
if (!__hasOwnProp.call(to, key))
|
|
12
|
-
__defProp(to, key, {
|
|
13
|
-
get: () => mod[key],
|
|
14
|
-
enumerable: true
|
|
15
|
-
});
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
2
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
19
3
|
|
|
20
4
|
// src/presets/scripts.ts
|
|
@@ -285,4 +269,4 @@ export {
|
|
|
285
269
|
createPackageJson
|
|
286
270
|
};
|
|
287
271
|
|
|
288
|
-
//# debugId=
|
|
272
|
+
//# debugId=0D3521357F57176D64756E2164756E21
|
package/dist/main.js.map
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"import type { PackageConfig, StandardPackageJson } from '../schemas/package'\nimport { getPresetScripts, mergeScripts } from '../presets/scripts'\nimport { resolveDependenciesCached } from '../resolvers/dependencies'\nimport { resolveExtends } from '../utils/merge'\nimport { applyConditions } from '../utils/conditions'\n\nexport interface GenerateOptions {\n indent?: number\n outputPath?: string\n}\n\nexport async function createPackageJson(\n config: PackageConfig,\n options: GenerateOptions = {}\n): Promise<string> {\n const { indent = 2 } = options\n\n // Step 1: Resolve extends chain\n let resolved = await resolveExtends(config)\n\n // Step 2: Build scripts from presets + custom\n const presetScripts = resolved.scriptPresets\n ? getPresetScripts(resolved.scriptPresets)\n : {}\n const finalScripts = mergeScripts(presetScripts, resolved.scripts)\n\n // Step 3: Resolve dependency versions\n const [dependencies, devDependencies, peerDependencies] = await Promise.all([\n resolveDependenciesCached(resolved.dependencies),\n resolveDependenciesCached(resolved.devDependencies),\n resolveDependenciesCached(resolved.peerDependencies),\n ])\n\n // Step 4: Build standard package.json\n const packageJson: StandardPackageJson = {\n name: resolved.name,\n ...(resolved.version && { version: resolved.version }),\n ...(resolved.description && { description: resolved.description }),\n ...(resolved.keywords?.length && { keywords: resolved.keywords }),\n ...(resolved.homepage && { homepage: resolved.homepage }),\n ...(resolved.bugs && { bugs: resolved.bugs }),\n ...(resolved.license && { license: resolved.license }),\n ...(resolved.author && { author: resolved.author }),\n ...(resolved.contributors?.length && {\n contributors: resolved.contributors,\n }),\n ...(resolved.repository && { repository: resolved.repository }),\n ...(resolved.type && { type: resolved.type }),\n ...(resolved.main && { main: resolved.main }),\n ...(resolved.module && { module: resolved.module }),\n ...(resolved.types && { types: resolved.types }),\n ...(resolved.exports && { exports: resolved.exports }),\n ...(resolved.bin && { bin: resolved.bin }),\n ...(resolved.files?.length && { files: resolved.files }),\n ...(Object.keys(finalScripts).length && { scripts: finalScripts }),\n ...(Object.keys(dependencies).length && { dependencies }),\n ...(Object.keys(devDependencies).length && { devDependencies }),\n ...(Object.keys(peerDependencies).length && { peerDependencies }),\n ...(resolved.optionalDependencies && {\n optionalDependencies: resolved.optionalDependencies,\n }),\n ...(resolved.engines && { engines: resolved.engines }),\n ...(resolved.os?.length && { os: resolved.os }),\n ...(resolved.cpu?.length && { cpu: resolved.cpu }),\n ...(resolved.private !== undefined && { private: resolved.private }),\n ...(resolved.publishConfig && { publishConfig: resolved.publishConfig }),\n ...(resolved.workspaces?.length && { workspaces: resolved.workspaces }),\n }\n\n // Step 5: Apply conditional configs\n const finalPackageJson = applyConditions(packageJson, resolved.conditions)\n\n return JSON.stringify(finalPackageJson, null, indent)\n}\n\nexport async function writePackageJson(\n config: PackageConfig,\n options: GenerateOptions = {}\n): Promise<void> {\n const { outputPath = 'package.json' } = options\n const json = await createPackageJson(config, options)\n const { writeFile } = await import('node:fs/promises')\n await writeFile(outputPath, json + '\\n')\n console.log(`✨ Generated ${outputPath}`)\n}\n",
|
|
10
10
|
"import type {\n PackageConfig,\n StandardPackageJson,\n ScriptPreset,\n DependencyInput,\n DependenciesInput,\n ConditionalConfig,\n License,\n} from './schemas/package'\nimport {\n createPackageJson,\n writePackageJson,\n type GenerateOptions,\n} from './generator/createPackageJson'\n\nexport function definePackageConfig(config: PackageConfig): PackageConfig {\n return config\n}\n\n// Run CLI if executed directly\nasync function main() {\n const configPath = process.argv[2] ?? 'package.config.ts'\n const outputPath = process.argv[3] ?? 'package.json'\n\n try {\n const configModule = await import(Bun.pathToFileURL(configPath).href)\n const config: PackageConfig = configModule.default ?? configModule\n\n await writePackageJson(config, { outputPath })\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ERR_MODULE_NOT_FOUND') {\n console.error(`❌ Config file not found: ${configPath}`)\n console.error('\\nCreate a package.config.ts file with:')\n console.error(`\nimport { definePackageConfig } from './src/main'\n\nexport default definePackageConfig({\n name: 'my-package',\n version: '1.0.0',\n scriptPresets: ['typescript', 'testing'],\n dependencies: ['lodash', 'zod'],\n devDependencies: ['typescript', 'vitest'],\n})\n`)\n process.exit(1)\n }\n throw error\n }\n}\n\n// Export everything\nexport {\n createPackageJson,\n writePackageJson,\n type PackageConfig,\n type StandardPackageJson,\n type ScriptPreset,\n type DependencyInput,\n type DependenciesInput,\n type ConditionalConfig,\n type GenerateOptions,\n type License,\n}\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "0D3521357F57176D64756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@a35hie/ts-pkg",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "TypeScript-based package.json with magical features",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": "https://github.com/a35hie/TsPkg",
|
|
@@ -20,19 +20,16 @@
|
|
|
20
20
|
"typecheck": "tsc --noEmit",
|
|
21
21
|
"format": "prettier --write .",
|
|
22
22
|
"format:check": "prettier --check .",
|
|
23
|
-
"
|
|
24
|
-
"test:watch": "vitest watch",
|
|
25
|
-
"test:coverage": "vitest --coverage",
|
|
26
|
-
"generate": "bun run src/main.ts"
|
|
23
|
+
"generate": "bun run src/cli.ts"
|
|
27
24
|
},
|
|
28
25
|
"devDependencies": {
|
|
29
|
-
"
|
|
30
|
-
"prettier": "^3.8.1",
|
|
26
|
+
"@types/bun": "^1.3.8",
|
|
31
27
|
"bun-plugin-dts": "^0.3.0",
|
|
32
|
-
"
|
|
28
|
+
"prettier": "^3.8.1",
|
|
29
|
+
"typescript": "^5.9.3"
|
|
33
30
|
},
|
|
34
31
|
"peerDependencies": {
|
|
35
|
-
"typescript": "^5"
|
|
32
|
+
"typescript": "^5.9.3"
|
|
36
33
|
},
|
|
37
34
|
"engines": {
|
|
38
35
|
"node": ">=18",
|