@jspm/local-mcp 0.1.1 → 0.1.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/Readme.md +54 -76
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +20 -0
- package/dist/cli.js.map +1 -0
- package/dist/context.d.ts +39 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +254 -0
- package/dist/context.js.map +1 -0
- package/dist/generator-options.d.ts +64 -0
- package/dist/generator-options.d.ts.map +1 -0
- package/dist/generator-options.js +78 -0
- package/dist/generator-options.js.map +1 -0
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -291
- package/dist/index.js.map +1 -1
- package/dist/tools/get-importmap.d.ts +4 -0
- package/dist/tools/get-importmap.d.ts.map +1 -0
- package/dist/tools/get-importmap.js +26 -0
- package/dist/tools/get-importmap.js.map +1 -0
- package/dist/tools/get-status.d.ts +4 -0
- package/dist/tools/get-status.d.ts.map +1 -0
- package/dist/tools/get-status.js +27 -0
- package/dist/tools/get-status.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +33 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/install-package.d.ts +4 -0
- package/dist/tools/install-package.d.ts.map +1 -0
- package/dist/tools/install-package.js +32 -0
- package/dist/tools/install-package.js.map +1 -0
- package/dist/tools/remove-provider-override.d.ts +4 -0
- package/dist/tools/remove-provider-override.d.ts.map +1 -0
- package/dist/tools/remove-provider-override.js +40 -0
- package/dist/tools/remove-provider-override.js.map +1 -0
- package/dist/tools/remove-resolution.d.ts +4 -0
- package/dist/tools/remove-resolution.d.ts.map +1 -0
- package/dist/tools/remove-resolution.js +40 -0
- package/dist/tools/remove-resolution.js.map +1 -0
- package/dist/tools/set-cache.d.ts +4 -0
- package/dist/tools/set-cache.d.ts.map +1 -0
- package/dist/tools/set-cache.js +40 -0
- package/dist/tools/set-cache.js.map +1 -0
- package/dist/tools/set-env.d.ts +4 -0
- package/dist/tools/set-env.d.ts.map +1 -0
- package/dist/tools/set-env.js +41 -0
- package/dist/tools/set-env.js.map +1 -0
- package/dist/tools/set-generator-options.d.ts +4 -0
- package/dist/tools/set-generator-options.d.ts.map +1 -0
- package/dist/tools/set-generator-options.js +43 -0
- package/dist/tools/set-generator-options.js.map +1 -0
- package/dist/tools/set-ignore.d.ts +4 -0
- package/dist/tools/set-ignore.d.ts.map +1 -0
- package/dist/tools/set-ignore.js +38 -0
- package/dist/tools/set-ignore.js.map +1 -0
- package/dist/tools/set-project.d.ts +4 -0
- package/dist/tools/set-project.d.ts.map +1 -0
- package/dist/tools/set-project.js +59 -0
- package/dist/tools/set-project.js.map +1 -0
- package/dist/tools/set-provider.d.ts +4 -0
- package/dist/tools/set-provider.d.ts.map +1 -0
- package/dist/tools/set-provider.js +57 -0
- package/dist/tools/set-provider.js.map +1 -0
- package/dist/tools/set-resolution.d.ts +4 -0
- package/dist/tools/set-resolution.d.ts.map +1 -0
- package/dist/tools/set-resolution.js +43 -0
- package/dist/tools/set-resolution.js.map +1 -0
- package/dist/tools/set-target.d.ts +4 -0
- package/dist/tools/set-target.d.ts.map +1 -0
- package/dist/tools/set-target.js +72 -0
- package/dist/tools/set-target.js.map +1 -0
- package/dist/tools/trace-file.d.ts +4 -0
- package/dist/tools/trace-file.d.ts.map +1 -0
- package/dist/tools/trace-file.js +48 -0
- package/dist/tools/trace-file.js.map +1 -0
- package/dist/tools/uninstall-package.d.ts +4 -0
- package/dist/tools/uninstall-package.d.ts.map +1 -0
- package/dist/tools/uninstall-package.js +32 -0
- package/dist/tools/uninstall-package.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +59 -2
- package/dist/utils.js.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-file.d.ts","sourceRoot":"","sources":["../../src/tools/trace-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAA;AAKjE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAEjD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,QAsDxB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
export function registerTraceFileTool(server, context) {
|
|
5
|
+
server.registerTool("trace_file", {
|
|
6
|
+
title: "Trace file imports",
|
|
7
|
+
description: "Traces imports from one or more local source files and adds the required mappings to the importmap.",
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
fileNames: z.array(z.string()),
|
|
10
|
+
}),
|
|
11
|
+
}, async ({ fileNames }) => context.runExclusive(async () => {
|
|
12
|
+
try {
|
|
13
|
+
const generator = context.getGenerator();
|
|
14
|
+
const content = [];
|
|
15
|
+
const filePaths = fileNames.map((fileName) => ({
|
|
16
|
+
fileName,
|
|
17
|
+
filePath: context.resolveProjectFilePath(fileName),
|
|
18
|
+
}));
|
|
19
|
+
for (const { fileName, filePath } of filePaths) {
|
|
20
|
+
if (!existsSync(filePath)) {
|
|
21
|
+
return context.failure(`File not found: ${fileName}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
for (const { fileName, filePath } of filePaths) {
|
|
25
|
+
await generator.link(pathToFileURL(filePath).href);
|
|
26
|
+
content.push({
|
|
27
|
+
type: "text",
|
|
28
|
+
text: `Scanned imports from ${fileName}`,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
await context.saveImportMap();
|
|
32
|
+
return {
|
|
33
|
+
content: [
|
|
34
|
+
...content,
|
|
35
|
+
{
|
|
36
|
+
type: "text",
|
|
37
|
+
text: "Updated the importmap target with traced dependencies.",
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
await context.resyncFromDisk();
|
|
44
|
+
return context.failure(error.message);
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=trace-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-file.js","sourceRoot":"","sources":["../../src/tools/trace-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAA;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAA;AACtC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAGrB,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,OAAuB;IAEvB,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,qGAAqG;QACvG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC/B,CAAC;KACH,EACD,KAAK,EAAE,EAAC,SAAS,EAAC,EAAE,EAAE,CACpB,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,OAAO,GAAmB,EAAE,CAAA;YAElC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC7C,QAAQ;gBACR,QAAQ,EAAE,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC;aACnD,CAAC,CAAC,CAAA;YAEH,KAAK,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,IAAI,SAAS,EAAE,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAA;gBACvD,CAAC;YACH,CAAC;YAED,KAAK,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,IAAI,SAAS,EAAE,CAAC;gBAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;gBAClD,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,wBAAwB,QAAQ,EAAE;iBACzC,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;YAE7B,OAAO;gBACL,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wDAAwD;qBAC/D;iBACF;aACF,CAAA;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC,cAAc,EAAE,CAAA;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;QAClD,CAAC;IACH,CAAC,CAAC,CACL,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { ProjectContext } from "../context.js";
|
|
3
|
+
export declare function registerUninstallPackageTool(server: McpServer, context: ProjectContext): void;
|
|
4
|
+
//# sourceMappingURL=uninstall-package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-package.d.ts","sourceRoot":"","sources":["../../src/tools/uninstall-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAA;AAEjE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAEjD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,QAqCxB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export function registerUninstallPackageTool(server, context) {
|
|
3
|
+
server.registerTool("uninstall_package", {
|
|
4
|
+
title: "Uninstall a package / dependency",
|
|
5
|
+
description: "Removes one or more packages from the importmap and saves the result.",
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
packageName: z.union([z.string(), z.array(z.string())]),
|
|
8
|
+
}),
|
|
9
|
+
}, async ({ packageName }) => context.runExclusive(async () => {
|
|
10
|
+
try {
|
|
11
|
+
const generator = context.getGenerator();
|
|
12
|
+
const packages = Array.isArray(packageName)
|
|
13
|
+
? packageName
|
|
14
|
+
: [packageName];
|
|
15
|
+
await generator.uninstall(packages);
|
|
16
|
+
await context.saveImportMap();
|
|
17
|
+
return {
|
|
18
|
+
content: [
|
|
19
|
+
{
|
|
20
|
+
type: "text",
|
|
21
|
+
text: `Uninstalled ${packages.join(", ")}`,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
await context.resyncFromDisk();
|
|
28
|
+
return context.failure(error.message);
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=uninstall-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-package.js","sourceRoot":"","sources":["../../src/tools/uninstall-package.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAGrB,MAAM,UAAU,4BAA4B,CAC1C,MAAiB,EACjB,OAAuB;IAEvB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,uEAAuE;QACzE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxD,CAAC;KACH,EACD,KAAK,EAAE,EAAC,WAAW,EAAC,EAAE,EAAE,CACtB,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBACzC,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YAEjB,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACnC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;YAE7B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC3C;iBACF;aACF,CAAA;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC,cAAc,EAAE,CAAA;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;QAClD,CAAC;IACH,CAAC,CAAC,CACL,CAAA;AACH,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export declare function ensureWritable(path: string): Promise<void>;
|
|
2
|
+
export declare function getAllowedRoot(): string | null;
|
|
3
|
+
export declare function isPathInside(parent: string, child: string): boolean;
|
|
4
|
+
export declare function assertInsideAllowedRoot(projectPath: string): void;
|
|
2
5
|
export declare function ensureProjectDirectory(projectPath?: string): string;
|
|
3
6
|
export declare function normalizeMapTarget(input: string): "importmap" | "html";
|
|
4
7
|
export declare function getImportMapLocation(projectPath?: string): string;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,iBAMhD;AAKD,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAc9C;AAmBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAkBnE;AAID,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAYjE;AAED,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBnE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CActE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,GACf,MAAM,CAMR"}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { access } from "node:fs/promises";
|
|
2
|
-
import { constants, existsSync, statSync } from "node:fs";
|
|
3
|
-
import { resolve } from "node:path";
|
|
2
|
+
import { constants, existsSync, realpathSync, statSync } from "node:fs";
|
|
3
|
+
import { resolve, sep } from "node:path";
|
|
4
|
+
import process from "node:process";
|
|
4
5
|
export async function ensureWritable(path) {
|
|
5
6
|
try {
|
|
6
7
|
await access(path, constants.W_OK);
|
|
@@ -9,6 +10,62 @@ export async function ensureWritable(path) {
|
|
|
9
10
|
throw new Error(`No write permission for: ${path}`);
|
|
10
11
|
}
|
|
11
12
|
}
|
|
13
|
+
// The operator confines the server to a root directory via JSPM_MCP_ROOT,
|
|
14
|
+
// defaulting to the process working directory. "*" (or an empty value)
|
|
15
|
+
// disables the restriction for users who accept the unscoped behavior.
|
|
16
|
+
export function getAllowedRoot() {
|
|
17
|
+
const configured = process.env.JSPM_MCP_ROOT;
|
|
18
|
+
if (configured === undefined) {
|
|
19
|
+
return resolve(process.cwd());
|
|
20
|
+
}
|
|
21
|
+
const trimmed = configured.trim();
|
|
22
|
+
if (trimmed === "" || trimmed === "*") {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return resolve(trimmed);
|
|
26
|
+
}
|
|
27
|
+
// Resolve a path to its canonical real path so symlinks/junctions cannot be
|
|
28
|
+
// used to escape a containment check. Paths that do not exist yet fall back to
|
|
29
|
+
// a lexical resolve (their nearest existing ancestor is what matters for
|
|
30
|
+
// containment, and that ancestor is realpath-resolved if present).
|
|
31
|
+
function realResolve(path) {
|
|
32
|
+
const resolved = resolve(path);
|
|
33
|
+
try {
|
|
34
|
+
return realpathSync.native(resolved);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return resolved;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// True when child is the parent directory itself or lives beneath it, after
|
|
41
|
+
// resolving real paths. Comparison is case-insensitive on platforms with
|
|
42
|
+
// case-insensitive file systems (Windows, macOS).
|
|
43
|
+
export function isPathInside(parent, child) {
|
|
44
|
+
let parentReal = realResolve(parent);
|
|
45
|
+
let childReal = realResolve(child);
|
|
46
|
+
if (process.platform === "win32" || process.platform === "darwin") {
|
|
47
|
+
parentReal = parentReal.toLowerCase();
|
|
48
|
+
childReal = childReal.toLowerCase();
|
|
49
|
+
}
|
|
50
|
+
if (childReal === parentReal) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
const parentWithSep = parentReal.endsWith(sep)
|
|
54
|
+
? parentReal
|
|
55
|
+
: `${parentReal}${sep}`;
|
|
56
|
+
return childReal.startsWith(parentWithSep);
|
|
57
|
+
}
|
|
58
|
+
// Enforce the operator-configured root on a project directory. A no-op when
|
|
59
|
+
// JSPM_MCP_ROOT disables the restriction.
|
|
60
|
+
export function assertInsideAllowedRoot(projectPath) {
|
|
61
|
+
const root = getAllowedRoot();
|
|
62
|
+
if (root === null) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!isPathInside(root, projectPath)) {
|
|
66
|
+
throw new Error(`Project path must stay inside the allowed root (${root}). Set JSPM_MCP_ROOT to widen it, or "*" to disable the restriction.`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
12
69
|
export function ensureProjectDirectory(projectPath) {
|
|
13
70
|
if (!projectPath) {
|
|
14
71
|
throw new Error("Project path is not configured");
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jspm/local-mcp",
|
|
3
3
|
"mcpName": "io.github.jspm/local-mcp",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"description": "A local-first MCP server for managing JSPM import maps in real projects.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"bin": {
|
|
10
|
-
"jspm-local-mcp": "./dist/
|
|
10
|
+
"jspm-local-mcp": "./dist/cli.js"
|
|
11
11
|
},
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
@@ -24,9 +24,11 @@
|
|
|
24
24
|
"node": ">=18"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"start": "node dist/
|
|
27
|
+
"start": "node dist/cli.js",
|
|
28
28
|
"build": "tsc",
|
|
29
|
-
"
|
|
29
|
+
"dev": "tsx watch src/cli.ts",
|
|
30
|
+
"clean": "node -e \"fs.rmSync('dist',{recursive:true,force:true})\"",
|
|
31
|
+
"format": "prettier ./src --write",
|
|
30
32
|
"prepublishOnly": "npm run clean && npm run build"
|
|
31
33
|
},
|
|
32
34
|
"author": "JSPM",
|
|
@@ -49,6 +51,7 @@
|
|
|
49
51
|
],
|
|
50
52
|
"devDependencies": {
|
|
51
53
|
"@types/node": "^22.19.17",
|
|
54
|
+
"prettier": "^3.8.3",
|
|
52
55
|
"tsx": "^4.19.2",
|
|
53
56
|
"typescript": "^5.7.2"
|
|
54
57
|
},
|