zet-x 1.0.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/LICENSE +21 -0
- package/README.md +358 -0
- package/bin/x.mjs +154 -0
- package/dist/context.d.ts +40 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +199 -0
- package/dist/context.js.map +1 -0
- package/dist/dts-content.js +1 -0
- package/dist/index.d.ts +84 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +820 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +12 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +10 -0
- package/dist/loader.js.map +1 -0
- package/dist/publish.d.ts +7 -0
- package/dist/publish.d.ts.map +1 -0
- package/dist/publish.js +89 -0
- package/dist/publish.js.map +1 -0
- package/dist/register.d.ts +2 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +3 -0
- package/dist/register.js.map +1 -0
- package/dist/runner.d.ts +2 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +23 -0
- package/dist/runner.js.map +1 -0
- package/dist/shared.d.ts +22 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +58 -0
- package/dist/shared.js.map +1 -0
- package/dist/types-generator.d.ts +2 -0
- package/dist/types-generator.d.ts.map +1 -0
- package/dist/types-generator.js +22 -0
- package/dist/types-generator.js.map +1 -0
- package/dist/util.d.ts +4 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +11 -0
- package/dist/util.js.map +1 -0
- package/package.json +53 -0
- package/templates/ai-reference.md +123 -0
package/dist/context.js
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { spawn as nodeSpawn } from "node:child_process";
|
|
2
|
+
import { resolve as pathResolve, join } from "node:path";
|
|
3
|
+
import { createInterface } from "node:readline";
|
|
4
|
+
import { CommandOutput, TemplateResult, flattenParts } from "./shared.js";
|
|
5
|
+
import { outAnsi, errAnsi, isTaggedTemplate } from "./util.js";
|
|
6
|
+
export const REST_SYMBOL = Symbol("rest");
|
|
7
|
+
export function buildRunParts(strings, values) {
|
|
8
|
+
const parts = [];
|
|
9
|
+
for (let i = 0; i < strings.length; i++) {
|
|
10
|
+
const words = strings[i].split(/\s+/).filter(Boolean);
|
|
11
|
+
for (const word of words) {
|
|
12
|
+
parts.push(word === "..." ? REST_SYMBOL : word);
|
|
13
|
+
}
|
|
14
|
+
if (i < values.length) {
|
|
15
|
+
const val = values[i];
|
|
16
|
+
if (typeof val === "function" && val._isZetTemplate) {
|
|
17
|
+
if (val._expectedArgs === 0) {
|
|
18
|
+
const result = val();
|
|
19
|
+
parts.push(...result.parts);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw new Error("A template was used without being called -- add () with the required arguments");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (val instanceof TemplateResult) {
|
|
26
|
+
parts.push(...val.parts);
|
|
27
|
+
}
|
|
28
|
+
else if (Array.isArray(val)) {
|
|
29
|
+
parts.push(...val.map(String));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
parts.push(String(val));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return parts;
|
|
37
|
+
}
|
|
38
|
+
export function expandRestSymbol(parts, restArgs) {
|
|
39
|
+
const result = [];
|
|
40
|
+
for (const p of parts) {
|
|
41
|
+
if (p === REST_SYMBOL) {
|
|
42
|
+
result.push(...restArgs);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
result.push(p);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
export function spawnCommand(parts, options) {
|
|
51
|
+
if (parts.length === 0) {
|
|
52
|
+
throw new Error("Cannot execute an empty command");
|
|
53
|
+
}
|
|
54
|
+
return new Promise((resolve) => {
|
|
55
|
+
const [cmd, ...args] = parts;
|
|
56
|
+
const child = nodeSpawn(cmd, args, options);
|
|
57
|
+
let errorOccurred = false;
|
|
58
|
+
child.on("error", (err) => {
|
|
59
|
+
errorOccurred = true;
|
|
60
|
+
const msg = err.code === "ENOENT"
|
|
61
|
+
? `Command not found: ${parts[0]}`
|
|
62
|
+
: err.message;
|
|
63
|
+
if (options.stdio === "inherit") {
|
|
64
|
+
process.stderr.write(`${errAnsi("31")}x: ${msg}${errAnsi("0")}\n`);
|
|
65
|
+
resolve(new CommandOutput(1, null, null, null));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
resolve(new CommandOutput(1, msg, null, msg));
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
if (options.stdio === "pipe") {
|
|
72
|
+
const allChunks = [];
|
|
73
|
+
const outChunks = [];
|
|
74
|
+
const errChunks = [];
|
|
75
|
+
child.stdout.on("data", (d) => { allChunks.push(d); outChunks.push(d); });
|
|
76
|
+
child.stderr.on("data", (d) => { allChunks.push(d); errChunks.push(d); });
|
|
77
|
+
child.on("close", (code) => {
|
|
78
|
+
if (errorOccurred)
|
|
79
|
+
return;
|
|
80
|
+
resolve(new CommandOutput(code ?? 1, Buffer.concat(allChunks).toString(), Buffer.concat(outChunks).toString(), Buffer.concat(errChunks).toString()));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
child.on("close", (code) => {
|
|
85
|
+
if (errorOccurred)
|
|
86
|
+
return;
|
|
87
|
+
resolve(new CommandOutput(code ?? 1, null, null, null));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export function createPathHelper(basePath) {
|
|
93
|
+
const fn = ((sub) => sub ? join(basePath, sub) : basePath);
|
|
94
|
+
fn[Symbol.toPrimitive] = () => basePath;
|
|
95
|
+
fn.toString = () => basePath;
|
|
96
|
+
return fn;
|
|
97
|
+
}
|
|
98
|
+
export class ExecutionContext {
|
|
99
|
+
_args;
|
|
100
|
+
_options;
|
|
101
|
+
_restArgs;
|
|
102
|
+
_rootDir;
|
|
103
|
+
_userDir;
|
|
104
|
+
_cwd;
|
|
105
|
+
_rootHelper;
|
|
106
|
+
_userHelper;
|
|
107
|
+
constructor(args, options, restArgs, rootDir, userDir, initialCwd) {
|
|
108
|
+
this._args = args;
|
|
109
|
+
this._options = options;
|
|
110
|
+
this._restArgs = restArgs;
|
|
111
|
+
this._rootDir = rootDir;
|
|
112
|
+
this._userDir = userDir;
|
|
113
|
+
this._cwd = initialCwd;
|
|
114
|
+
this._rootHelper = createPathHelper(rootDir);
|
|
115
|
+
this._userHelper = createPathHelper(userDir);
|
|
116
|
+
}
|
|
117
|
+
arg(name) {
|
|
118
|
+
return this._args[name] ?? null;
|
|
119
|
+
}
|
|
120
|
+
option(name) {
|
|
121
|
+
return this._options[name] ?? null;
|
|
122
|
+
}
|
|
123
|
+
run(stringsOrParts, ...values) {
|
|
124
|
+
let expanded;
|
|
125
|
+
if (isTaggedTemplate(stringsOrParts)) {
|
|
126
|
+
const parts = buildRunParts(stringsOrParts, values);
|
|
127
|
+
expanded = expandRestSymbol(parts, this._restArgs);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
expanded = flattenParts([stringsOrParts, ...values]);
|
|
131
|
+
}
|
|
132
|
+
return spawnCommand(expanded, { stdio: "inherit", cwd: this._cwd });
|
|
133
|
+
}
|
|
134
|
+
async mustRun(stringsOrParts, ...values) {
|
|
135
|
+
const result = await this.run(stringsOrParts, ...values);
|
|
136
|
+
return result.throw();
|
|
137
|
+
}
|
|
138
|
+
silent(stringsOrParts, ...values) {
|
|
139
|
+
let expanded;
|
|
140
|
+
if (isTaggedTemplate(stringsOrParts)) {
|
|
141
|
+
const parts = buildRunParts(stringsOrParts, values);
|
|
142
|
+
expanded = expandRestSymbol(parts, this._restArgs);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
expanded = flattenParts([stringsOrParts, ...values]);
|
|
146
|
+
}
|
|
147
|
+
return spawnCommand(expanded, { stdio: "pipe", cwd: this._cwd });
|
|
148
|
+
}
|
|
149
|
+
async mustSilent(stringsOrParts, ...values) {
|
|
150
|
+
const result = await this.silent(stringsOrParts, ...values);
|
|
151
|
+
return result.throw();
|
|
152
|
+
}
|
|
153
|
+
info(msg) {
|
|
154
|
+
process.stdout.write(`${outAnsi("32")}${msg}${outAnsi("0")}\n`);
|
|
155
|
+
}
|
|
156
|
+
warn(msg) {
|
|
157
|
+
process.stderr.write(`${errAnsi("33")}${msg}${errAnsi("0")}\n`);
|
|
158
|
+
}
|
|
159
|
+
error(msg) {
|
|
160
|
+
process.stderr.write(`${errAnsi("31")}${msg}${errAnsi("0")}\n`);
|
|
161
|
+
}
|
|
162
|
+
async confirm(msg) {
|
|
163
|
+
const yellow = errAnsi("33");
|
|
164
|
+
const reset = errAnsi("0");
|
|
165
|
+
process.stderr.write(`${yellow}${msg} [y/N]${reset} `);
|
|
166
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr, terminal: false });
|
|
167
|
+
const answer = await new Promise((res) => {
|
|
168
|
+
rl.once("close", () => { res(""); });
|
|
169
|
+
rl.once("line", (line) => {
|
|
170
|
+
rl.close();
|
|
171
|
+
res(line.trim().toLowerCase());
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
return answer === "y" || answer === "yes";
|
|
175
|
+
}
|
|
176
|
+
async prompt(msg) {
|
|
177
|
+
const cyan = errAnsi("36");
|
|
178
|
+
const reset = errAnsi("0");
|
|
179
|
+
process.stderr.write(`${cyan}${msg}${reset} `);
|
|
180
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr, terminal: false });
|
|
181
|
+
return new Promise((res) => {
|
|
182
|
+
rl.once("close", () => { res(""); });
|
|
183
|
+
rl.once("line", (line) => {
|
|
184
|
+
rl.close();
|
|
185
|
+
res(line);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
get root() {
|
|
190
|
+
return this._rootHelper;
|
|
191
|
+
}
|
|
192
|
+
get user() {
|
|
193
|
+
return this._userHelper;
|
|
194
|
+
}
|
|
195
|
+
cd(path) {
|
|
196
|
+
this._cwd = pathResolve(this._cwd, path);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const DTS_CONTENT = "declare module \"zet-x\" {\n interface CommandOutput {\n code: number;\n output: string | null;\n stdout: string | null;\n stderr: string | null;\n get succeeded(): boolean;\n get failed(): boolean;\n throw(): this;\n }\n\n interface PathHelper {\n (sub?: string): string;\n [Symbol.toPrimitive](): string;\n toString(): string;\n }\n\n interface ExecutionContext {\n arg(name: string): string | null;\n option(name: string): string | true | null;\n run(stringsOrParts: TemplateStringsArray | unknown, ...values: unknown[]): Promise<CommandOutput>;\n mustRun(stringsOrParts: TemplateStringsArray | unknown, ...values: unknown[]): Promise<CommandOutput>;\n silent(stringsOrParts: TemplateStringsArray | unknown, ...values: unknown[]): Promise<CommandOutput>;\n mustSilent(stringsOrParts: TemplateStringsArray | unknown, ...values: unknown[]): Promise<CommandOutput>;\n info(msg: string): void;\n warn(msg: string): void;\n error(msg: string): void;\n confirm(msg: string): Promise<boolean>;\n prompt(msg: string): Promise<string>;\n get root(): PathHelper;\n get user(): PathHelper;\n cd(path: string): void;\n }\n\n interface TemplateResult {\n parts: string[];\n toString(): string;\n }\n\n interface CommandBuilder {\n description(text: string): this;\n run(stringsOrParts: TemplateStringsArray | unknown, ...values: unknown[]): this;\n userCwd(): this;\n callback(fn: ($: ExecutionContext) => void | Promise<void>): this;\n }\n\n interface Group {\n prefix: string;\n description: string;\n register(signature: string, description?: string): CommandBuilder;\n }\n\n export function register(signature: string, description?: string): CommandBuilder;\n export function group(prefix: string, description: string): Group;\n export function template(fn: (...args: (string | TemplateResult)[]) => string | unknown[]): (...args: (string | TemplateResult)[]) => TemplateResult;\n export function setAiPublishPath(path: string | null): void;\n export function setIdePublishPath(path: string | null): void;\n export function autoPublishIde(): void;\n}\n";
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ExecutionContext } from "./context.js";
|
|
2
|
+
import { TemplateResult } from "./shared.js";
|
|
3
|
+
import type { TemplateFn } from "./shared.js";
|
|
4
|
+
export { CommandOutput, TemplateResult, flattenParts } from "./shared.js";
|
|
5
|
+
export type { TemplateFn } from "./shared.js";
|
|
6
|
+
export { ExecutionContext, buildRunParts, expandRestSymbol, REST_SYMBOL, spawnCommand } from "./context.js";
|
|
7
|
+
export type { PathHelper } from "./context.js";
|
|
8
|
+
export declare function formatUncaughtError(err: Error): string;
|
|
9
|
+
export interface ArgumentDef {
|
|
10
|
+
name: string;
|
|
11
|
+
required: boolean;
|
|
12
|
+
description: string;
|
|
13
|
+
}
|
|
14
|
+
export interface OptionDef {
|
|
15
|
+
long: string;
|
|
16
|
+
short: string | null;
|
|
17
|
+
acceptsValue: boolean;
|
|
18
|
+
description: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ParsedSignature {
|
|
21
|
+
name: string;
|
|
22
|
+
args: ArgumentDef[];
|
|
23
|
+
options: OptionDef[];
|
|
24
|
+
acceptsRest: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function parseSignature(signature: string): ParsedSignature;
|
|
27
|
+
export declare class Command {
|
|
28
|
+
name: string;
|
|
29
|
+
group: Group | null;
|
|
30
|
+
signature: ParsedSignature;
|
|
31
|
+
description: string;
|
|
32
|
+
type: "command" | "callback" | null;
|
|
33
|
+
parts: (string | symbol)[] | null;
|
|
34
|
+
userCwd: boolean;
|
|
35
|
+
callback: (($: ExecutionContext) => void | Promise<void>) | null;
|
|
36
|
+
constructor(name: string, group: Group | null, signature: ParsedSignature);
|
|
37
|
+
}
|
|
38
|
+
export declare class CommandBuilder {
|
|
39
|
+
#private;
|
|
40
|
+
constructor(cmd: Command);
|
|
41
|
+
description(text: string): this;
|
|
42
|
+
run(stringsOrParts: TemplateStringsArray | unknown, ...values: unknown[]): this;
|
|
43
|
+
userCwd(): this;
|
|
44
|
+
callback(fn: ($: ExecutionContext) => void | Promise<void>): this;
|
|
45
|
+
}
|
|
46
|
+
export declare class Group {
|
|
47
|
+
prefix: string;
|
|
48
|
+
description: string;
|
|
49
|
+
commands: Map<string, Command>;
|
|
50
|
+
constructor(prefix: string, description: string);
|
|
51
|
+
register(signature: string, description?: string): CommandBuilder;
|
|
52
|
+
}
|
|
53
|
+
export declare function _getCliConfigForTesting(): {
|
|
54
|
+
aiPublishPath: string | null;
|
|
55
|
+
idePublishPath: string | null;
|
|
56
|
+
autoPublishIde: boolean;
|
|
57
|
+
};
|
|
58
|
+
export declare const rootGroup: Group;
|
|
59
|
+
export declare const groups: Map<string, Group>;
|
|
60
|
+
export declare function _resetForTesting(): void;
|
|
61
|
+
export declare function register(signature: string, description?: string): CommandBuilder;
|
|
62
|
+
export declare function group(prefix: string, description: string): Group;
|
|
63
|
+
export declare function template(fn: (...args: (string | TemplateResult)[]) => string | unknown[]): TemplateFn;
|
|
64
|
+
export declare function setAiPublishPath(path: string | null): void;
|
|
65
|
+
export declare function setIdePublishPath(path: string | null): void;
|
|
66
|
+
export declare function autoPublishIde(): void;
|
|
67
|
+
export declare function formatGlobalHelp(): string;
|
|
68
|
+
export declare function formatCommandHelp(cmd: Command): string;
|
|
69
|
+
export declare function formatGroupHelp(grp: Group): string;
|
|
70
|
+
interface ParsedArgv {
|
|
71
|
+
args: Record<string, string>;
|
|
72
|
+
options: Record<string, string | true>;
|
|
73
|
+
rest: string[];
|
|
74
|
+
}
|
|
75
|
+
interface ParsedArgvHelp {
|
|
76
|
+
help: true;
|
|
77
|
+
}
|
|
78
|
+
interface ParsedArgvError {
|
|
79
|
+
error: string;
|
|
80
|
+
cmd: Command;
|
|
81
|
+
}
|
|
82
|
+
export declare function parseArgv(argv: string[], cmd: Command): ParsedArgv | ParsedArgvHelp | ParsedArgvError;
|
|
83
|
+
export declare function init(): Promise<void>;
|
|
84
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|