@jixo/cli 0.25.0 → 0.26.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/assets/bundle/google-aistudio.browser.js +562 -2433
- package/assets/bundle/google-aistudio.jixo.js +63655 -0
- package/assets/prompt.json +1 -1
- package/assets/tools.json +1 -0
- package/bundle/{acorn-CU7YmuGp.js → acorn-BJF4qA9z.js} +17 -39
- package/bundle/acorn-BJF4qA9z.js.map +1 -0
- package/bundle/{angular-BZFEnvyh.js → angular-Cu7-vCtW.js} +44 -207
- package/bundle/angular-Cu7-vCtW.js.map +1 -0
- package/bundle/{babel-BC5Ty8sN.js → babel-ZTOL0_x6.js} +109 -125
- package/bundle/babel-ZTOL0_x6.js.map +1 -0
- package/bundle/{estree-DZTSfOv_.js → estree-5JRlNokb.js} +9 -10
- package/bundle/estree-5JRlNokb.js.map +1 -0
- package/bundle/file-replacer-CQZSjZXb.js +3 -0
- package/bundle/{file-replacer-cUUAxJ6b.js → file-replacer-CZhq6MJJ.js} +1543 -1127
- package/bundle/file-replacer-CZhq6MJJ.js.map +1 -0
- package/bundle/{flow-CNTeHoxv.js → flow-Cd3L1dMY.js} +482 -680
- package/bundle/flow-Cd3L1dMY.js.map +1 -0
- package/bundle/{gen-prompt-qt1W8jAy.js → gen-prompt-3bZp8K__.js} +5610 -526
- package/bundle/gen-prompt-3bZp8K__.js.map +1 -0
- package/bundle/gen-prompt-IINGP6mf.js +4 -0
- package/bundle/{glimmer-DYkbcawC.js → glimmer-N8tyHqy2.js} +29 -47
- package/bundle/glimmer-N8tyHqy2.js.map +1 -0
- package/bundle/{graphql-fCaNVuM0.js → graphql-BsfPfzVT.js} +8 -8
- package/bundle/graphql-BsfPfzVT.js.map +1 -0
- package/bundle/{html-Bb8ztcZq.js → html-CV8zEM7F.js} +8 -10
- package/bundle/html-CV8zEM7F.js.map +1 -0
- package/bundle/index.js +16415 -7240
- package/bundle/index.js.map +1 -0
- package/bundle/{markdown-ChusAllR.js → markdown-Cq8CRcxA.js} +5 -89
- package/bundle/markdown-Cq8CRcxA.js.map +1 -0
- package/bundle/{meriyah-9NeL3We4.js → meriyah-f8qRdfjZ.js} +10 -16
- package/bundle/meriyah-f8qRdfjZ.js.map +1 -0
- package/bundle/{postcss-DXCUuMfC.js → postcss-CtnQb9ad.js} +69 -159
- package/bundle/postcss-CtnQb9ad.js.map +1 -0
- package/bundle/{typescript-C2HFEnMP.js → typescript-BQw1QTVg.js} +55 -106
- package/bundle/typescript-BQw1QTVg.js.map +1 -0
- package/bundle/{yaml-ByEZ6gmG.js → yaml-B5kqwurc.js} +55 -127
- package/bundle/yaml-B5kqwurc.js.map +1 -0
- package/dist/commands/google-aistudio.d.ts.map +1 -1
- package/dist/commands/google-aistudio.js +6 -16
- package/dist/commands/google-aistudio.js.map +1 -1
- package/dist/commands/groq.js +1 -1
- package/dist/commands/groq.js.map +1 -1
- package/dist/prompts.json +2 -14
- package/dist/runCli.js +3 -3
- package/dist/runCli.js.map +1 -1
- package/package.json +9 -8
- package/assets/bundle/groq.browser.js +0 -3714
- package/bundle/external-CS43xY0F.js +0 -285
- package/bundle/file-replacer-nbB4NnrU.js +0 -3
- package/bundle/gen-prompt-BxI7DHUD.js +0 -4
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -83
- package/dist/cli.js.map +0 -1
- package/dist/commands/daemon.d.ts +0 -5
- package/dist/commands/daemon.d.ts.map +0 -1
- package/dist/commands/daemon.js +0 -20
- package/dist/commands/daemon.js.map +0 -1
- package/dist/commands/doctor/config.d.ts +0 -3
- package/dist/commands/doctor/config.d.ts.map +0 -1
- package/dist/commands/doctor/config.js +0 -17
- package/dist/commands/doctor/config.js.map +0 -1
- package/dist/commands/doctor/doctor.d.ts +0 -3
- package/dist/commands/doctor/doctor.d.ts.map +0 -1
- package/dist/commands/doctor/doctor.js +0 -158
- package/dist/commands/doctor/doctor.js.map +0 -1
- package/dist/commands/doctor/doctor.test.d.ts +0 -2
- package/dist/commands/doctor/doctor.test.d.ts.map +0 -1
- package/dist/commands/doctor/doctor.test.js +0 -14
- package/dist/commands/doctor/doctor.test.js.map +0 -1
- package/dist/commands/doctor/index.d.ts +0 -2
- package/dist/commands/doctor/index.d.ts.map +0 -1
- package/dist/commands/doctor/index.js +0 -8
- package/dist/commands/doctor/index.js.map +0 -1
- package/dist/commands/doctor/types.d.ts +0 -45
- package/dist/commands/doctor/types.d.ts.map +0 -1
- package/dist/commands/doctor/types.js +0 -3
- package/dist/commands/doctor/types.js.map +0 -1
- package/dist/commands/init.d.ts +0 -2
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -40
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/tasks/run.d.ts +0 -10
- package/dist/commands/tasks/run.d.ts.map +0 -1
- package/dist/commands/tasks/run.js +0 -44
- package/dist/commands/tasks/run.js.map +0 -1
- package/dist/config.d.ts +0 -15
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -23
- package/dist/config.js.map +0 -1
- package/dist/env.d.ts +0 -6
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -16
- package/dist/env.js.map +0 -1
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
import { $ZodISODate, $ZodISODateTime, $ZodISODuration, $ZodISOTime, $brand, $constructor, $input, $output, NEVER, TimePrecision, __export, _coercedBigint, _coercedBoolean, _coercedDate, _coercedNumber, _coercedString, _endsWith, _function, _gt, _gte, _includes, _isoDate, _isoDateTime, _isoDuration, _isoTime, _length, _lowercase, _lt, _lte, _maxLength, _maxSize, _mime, _minLength, _minSize, _multipleOf, _negative, _nonnegative, _nonpositive, _normalize, _overwrite, _positive, _property, _regex, _size, _startsWith, _toLowerCase, _toUpperCase, _trim, _uppercase, clone, config, core_exports, flattenError, formatError, globalRegistry, locales_exports, parse, parseAsync, prettifyError, regexes_exports, registry, safeParse, safeParseAsync, toJSONSchema, treeifyError } from "./file-replacer-cUUAxJ6b.js";
|
|
2
|
-
import { ZodMiniAny, ZodMiniArray, ZodMiniBase64, ZodMiniBase64URL, ZodMiniBigInt, ZodMiniBigIntFormat, ZodMiniBoolean, ZodMiniCIDRv4, ZodMiniCIDRv6, ZodMiniCUID, ZodMiniCUID2, ZodMiniCatch, ZodMiniCustom, ZodMiniCustomStringFormat, ZodMiniDate, ZodMiniDefault, ZodMiniDiscriminatedUnion, ZodMiniE164, ZodMiniEmail, ZodMiniEmoji, ZodMiniEnum, ZodMiniFile, ZodMiniGUID, ZodMiniIPv4, ZodMiniIPv6, ZodMiniIntersection, ZodMiniJWT, ZodMiniKSUID, ZodMiniLazy, ZodMiniLiteral, ZodMiniMap, ZodMiniNaN, ZodMiniNanoID, ZodMiniNever, ZodMiniNonOptional, ZodMiniNull, ZodMiniNullable, ZodMiniNumber, ZodMiniNumberFormat, ZodMiniObject, ZodMiniOptional, ZodMiniPipe, ZodMiniPrefault, ZodMiniPromise, ZodMiniReadonly, ZodMiniRecord, ZodMiniSet, ZodMiniString, ZodMiniStringFormat, ZodMiniSuccess, ZodMiniSymbol, ZodMiniTemplateLiteral, ZodMiniTransform, ZodMiniTuple, ZodMiniType, ZodMiniULID, ZodMiniURL, ZodMiniUUID, ZodMiniUndefined, ZodMiniUnion, ZodMiniUnknown, ZodMiniVoid, ZodMiniXID, _catch, _default, _enum, _instanceof, _lazy, _null, _undefined, _void, any, array, base64, base64url, bigint, boolean, catchall, check, cidrv4, cidrv6, cuid, cuid2, custom, date, discriminatedUnion, e164, email, emoji, extend, file, float32, float64, guid, int, int32, int64, intersection, ipv4, ipv6, json, jwt, keyof, ksuid, literal, looseObject, map, merge, nan, nanoid, nativeEnum, never, nonoptional, nullable, nullish, number, object, omit, optional, partial, partialRecord, pick, pipe, prefault, promise, readonly, record, refine, required, set, strictObject, string, stringFormat, stringbool, success, symbol, templateLiteral, transform, tuple, uint32, uint64, ulid, union, unknown, url, uuid, uuidv4, uuidv6, uuidv7, xid } from "./index.js";
|
|
3
|
-
|
|
4
|
-
//#region ../../node_modules/.pnpm/zod@4.0.10/node_modules/zod/v4/mini/iso.js
|
|
5
|
-
var iso_exports = {};
|
|
6
|
-
__export(iso_exports, {
|
|
7
|
-
ZodMiniISODate: () => ZodMiniISODate,
|
|
8
|
-
ZodMiniISODateTime: () => ZodMiniISODateTime,
|
|
9
|
-
ZodMiniISODuration: () => ZodMiniISODuration,
|
|
10
|
-
ZodMiniISOTime: () => ZodMiniISOTime,
|
|
11
|
-
date: () => date$2,
|
|
12
|
-
datetime: () => datetime,
|
|
13
|
-
duration: () => duration,
|
|
14
|
-
time: () => time
|
|
15
|
-
});
|
|
16
|
-
const ZodMiniISODateTime = /* @__PURE__ */ $constructor("$ZodISODateTime", (inst, def) => {
|
|
17
|
-
$ZodISODateTime.init(inst, def);
|
|
18
|
-
ZodMiniStringFormat.init(inst, def);
|
|
19
|
-
});
|
|
20
|
-
function datetime(params) {
|
|
21
|
-
return _isoDateTime(ZodMiniISODateTime, params);
|
|
22
|
-
}
|
|
23
|
-
const ZodMiniISODate = /* @__PURE__ */ $constructor("$ZodISODate", (inst, def) => {
|
|
24
|
-
$ZodISODate.init(inst, def);
|
|
25
|
-
ZodMiniStringFormat.init(inst, def);
|
|
26
|
-
});
|
|
27
|
-
function date$2(params) {
|
|
28
|
-
return _isoDate(ZodMiniISODate, params);
|
|
29
|
-
}
|
|
30
|
-
const ZodMiniISOTime = /* @__PURE__ */ $constructor("$ZodISOTime", (inst, def) => {
|
|
31
|
-
$ZodISOTime.init(inst, def);
|
|
32
|
-
ZodMiniStringFormat.init(inst, def);
|
|
33
|
-
});
|
|
34
|
-
function time(params) {
|
|
35
|
-
return _isoTime(ZodMiniISOTime, params);
|
|
36
|
-
}
|
|
37
|
-
const ZodMiniISODuration = /* @__PURE__ */ $constructor("$ZodISODuration", (inst, def) => {
|
|
38
|
-
$ZodISODuration.init(inst, def);
|
|
39
|
-
ZodMiniStringFormat.init(inst, def);
|
|
40
|
-
});
|
|
41
|
-
function duration(params) {
|
|
42
|
-
return _isoDuration(ZodMiniISODuration, params);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
//#endregion
|
|
46
|
-
//#region ../../node_modules/.pnpm/zod@4.0.10/node_modules/zod/v4/mini/coerce.js
|
|
47
|
-
var coerce_exports = {};
|
|
48
|
-
__export(coerce_exports, {
|
|
49
|
-
bigint: () => bigint$1,
|
|
50
|
-
boolean: () => boolean$1,
|
|
51
|
-
date: () => date$1,
|
|
52
|
-
number: () => number$1,
|
|
53
|
-
string: () => string$1
|
|
54
|
-
});
|
|
55
|
-
function string$1(params) {
|
|
56
|
-
return _coercedString(ZodMiniString, params);
|
|
57
|
-
}
|
|
58
|
-
function number$1(params) {
|
|
59
|
-
return _coercedNumber(ZodMiniNumber, params);
|
|
60
|
-
}
|
|
61
|
-
function boolean$1(params) {
|
|
62
|
-
return _coercedBoolean(ZodMiniBoolean, params);
|
|
63
|
-
}
|
|
64
|
-
function bigint$1(params) {
|
|
65
|
-
return _coercedBigint(ZodMiniBigInt, params);
|
|
66
|
-
}
|
|
67
|
-
function date$1(params) {
|
|
68
|
-
return _coercedDate(ZodMiniDate, params);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
//#endregion
|
|
72
|
-
//#region ../../node_modules/.pnpm/zod@4.0.10/node_modules/zod/v4/mini/external.js
|
|
73
|
-
var external_exports = {};
|
|
74
|
-
__export(external_exports, {
|
|
75
|
-
$brand: () => $brand,
|
|
76
|
-
$input: () => $input,
|
|
77
|
-
$output: () => $output,
|
|
78
|
-
NEVER: () => NEVER,
|
|
79
|
-
TimePrecision: () => TimePrecision,
|
|
80
|
-
ZodMiniAny: () => ZodMiniAny,
|
|
81
|
-
ZodMiniArray: () => ZodMiniArray,
|
|
82
|
-
ZodMiniBase64: () => ZodMiniBase64,
|
|
83
|
-
ZodMiniBase64URL: () => ZodMiniBase64URL,
|
|
84
|
-
ZodMiniBigInt: () => ZodMiniBigInt,
|
|
85
|
-
ZodMiniBigIntFormat: () => ZodMiniBigIntFormat,
|
|
86
|
-
ZodMiniBoolean: () => ZodMiniBoolean,
|
|
87
|
-
ZodMiniCIDRv4: () => ZodMiniCIDRv4,
|
|
88
|
-
ZodMiniCIDRv6: () => ZodMiniCIDRv6,
|
|
89
|
-
ZodMiniCUID: () => ZodMiniCUID,
|
|
90
|
-
ZodMiniCUID2: () => ZodMiniCUID2,
|
|
91
|
-
ZodMiniCatch: () => ZodMiniCatch,
|
|
92
|
-
ZodMiniCustom: () => ZodMiniCustom,
|
|
93
|
-
ZodMiniCustomStringFormat: () => ZodMiniCustomStringFormat,
|
|
94
|
-
ZodMiniDate: () => ZodMiniDate,
|
|
95
|
-
ZodMiniDefault: () => ZodMiniDefault,
|
|
96
|
-
ZodMiniDiscriminatedUnion: () => ZodMiniDiscriminatedUnion,
|
|
97
|
-
ZodMiniE164: () => ZodMiniE164,
|
|
98
|
-
ZodMiniEmail: () => ZodMiniEmail,
|
|
99
|
-
ZodMiniEmoji: () => ZodMiniEmoji,
|
|
100
|
-
ZodMiniEnum: () => ZodMiniEnum,
|
|
101
|
-
ZodMiniFile: () => ZodMiniFile,
|
|
102
|
-
ZodMiniGUID: () => ZodMiniGUID,
|
|
103
|
-
ZodMiniIPv4: () => ZodMiniIPv4,
|
|
104
|
-
ZodMiniIPv6: () => ZodMiniIPv6,
|
|
105
|
-
ZodMiniISODate: () => ZodMiniISODate,
|
|
106
|
-
ZodMiniISODateTime: () => ZodMiniISODateTime,
|
|
107
|
-
ZodMiniISODuration: () => ZodMiniISODuration,
|
|
108
|
-
ZodMiniISOTime: () => ZodMiniISOTime,
|
|
109
|
-
ZodMiniIntersection: () => ZodMiniIntersection,
|
|
110
|
-
ZodMiniJWT: () => ZodMiniJWT,
|
|
111
|
-
ZodMiniKSUID: () => ZodMiniKSUID,
|
|
112
|
-
ZodMiniLazy: () => ZodMiniLazy,
|
|
113
|
-
ZodMiniLiteral: () => ZodMiniLiteral,
|
|
114
|
-
ZodMiniMap: () => ZodMiniMap,
|
|
115
|
-
ZodMiniNaN: () => ZodMiniNaN,
|
|
116
|
-
ZodMiniNanoID: () => ZodMiniNanoID,
|
|
117
|
-
ZodMiniNever: () => ZodMiniNever,
|
|
118
|
-
ZodMiniNonOptional: () => ZodMiniNonOptional,
|
|
119
|
-
ZodMiniNull: () => ZodMiniNull,
|
|
120
|
-
ZodMiniNullable: () => ZodMiniNullable,
|
|
121
|
-
ZodMiniNumber: () => ZodMiniNumber,
|
|
122
|
-
ZodMiniNumberFormat: () => ZodMiniNumberFormat,
|
|
123
|
-
ZodMiniObject: () => ZodMiniObject,
|
|
124
|
-
ZodMiniOptional: () => ZodMiniOptional,
|
|
125
|
-
ZodMiniPipe: () => ZodMiniPipe,
|
|
126
|
-
ZodMiniPrefault: () => ZodMiniPrefault,
|
|
127
|
-
ZodMiniPromise: () => ZodMiniPromise,
|
|
128
|
-
ZodMiniReadonly: () => ZodMiniReadonly,
|
|
129
|
-
ZodMiniRecord: () => ZodMiniRecord,
|
|
130
|
-
ZodMiniSet: () => ZodMiniSet,
|
|
131
|
-
ZodMiniString: () => ZodMiniString,
|
|
132
|
-
ZodMiniStringFormat: () => ZodMiniStringFormat,
|
|
133
|
-
ZodMiniSuccess: () => ZodMiniSuccess,
|
|
134
|
-
ZodMiniSymbol: () => ZodMiniSymbol,
|
|
135
|
-
ZodMiniTemplateLiteral: () => ZodMiniTemplateLiteral,
|
|
136
|
-
ZodMiniTransform: () => ZodMiniTransform,
|
|
137
|
-
ZodMiniTuple: () => ZodMiniTuple,
|
|
138
|
-
ZodMiniType: () => ZodMiniType,
|
|
139
|
-
ZodMiniULID: () => ZodMiniULID,
|
|
140
|
-
ZodMiniURL: () => ZodMiniURL,
|
|
141
|
-
ZodMiniUUID: () => ZodMiniUUID,
|
|
142
|
-
ZodMiniUndefined: () => ZodMiniUndefined,
|
|
143
|
-
ZodMiniUnion: () => ZodMiniUnion,
|
|
144
|
-
ZodMiniUnknown: () => ZodMiniUnknown,
|
|
145
|
-
ZodMiniVoid: () => ZodMiniVoid,
|
|
146
|
-
ZodMiniXID: () => ZodMiniXID,
|
|
147
|
-
_default: () => _default,
|
|
148
|
-
any: () => any,
|
|
149
|
-
array: () => array,
|
|
150
|
-
base64: () => base64,
|
|
151
|
-
base64url: () => base64url,
|
|
152
|
-
bigint: () => bigint,
|
|
153
|
-
boolean: () => boolean,
|
|
154
|
-
catch: () => _catch,
|
|
155
|
-
catchall: () => catchall,
|
|
156
|
-
check: () => check,
|
|
157
|
-
cidrv4: () => cidrv4,
|
|
158
|
-
cidrv6: () => cidrv6,
|
|
159
|
-
clone: () => clone,
|
|
160
|
-
coerce: () => coerce_exports,
|
|
161
|
-
config: () => config,
|
|
162
|
-
core: () => core_exports,
|
|
163
|
-
cuid: () => cuid,
|
|
164
|
-
cuid2: () => cuid2,
|
|
165
|
-
custom: () => custom,
|
|
166
|
-
date: () => date,
|
|
167
|
-
discriminatedUnion: () => discriminatedUnion,
|
|
168
|
-
e164: () => e164,
|
|
169
|
-
email: () => email,
|
|
170
|
-
emoji: () => emoji,
|
|
171
|
-
endsWith: () => _endsWith,
|
|
172
|
-
enum: () => _enum,
|
|
173
|
-
extend: () => extend,
|
|
174
|
-
file: () => file,
|
|
175
|
-
flattenError: () => flattenError,
|
|
176
|
-
float32: () => float32,
|
|
177
|
-
float64: () => float64,
|
|
178
|
-
formatError: () => formatError,
|
|
179
|
-
function: () => _function,
|
|
180
|
-
globalRegistry: () => globalRegistry,
|
|
181
|
-
gt: () => _gt,
|
|
182
|
-
gte: () => _gte,
|
|
183
|
-
guid: () => guid,
|
|
184
|
-
includes: () => _includes,
|
|
185
|
-
instanceof: () => _instanceof,
|
|
186
|
-
int: () => int,
|
|
187
|
-
int32: () => int32,
|
|
188
|
-
int64: () => int64,
|
|
189
|
-
intersection: () => intersection,
|
|
190
|
-
ipv4: () => ipv4,
|
|
191
|
-
ipv6: () => ipv6,
|
|
192
|
-
iso: () => iso_exports,
|
|
193
|
-
json: () => json,
|
|
194
|
-
jwt: () => jwt,
|
|
195
|
-
keyof: () => keyof,
|
|
196
|
-
ksuid: () => ksuid,
|
|
197
|
-
lazy: () => _lazy,
|
|
198
|
-
length: () => _length,
|
|
199
|
-
literal: () => literal,
|
|
200
|
-
locales: () => locales_exports,
|
|
201
|
-
looseObject: () => looseObject,
|
|
202
|
-
lowercase: () => _lowercase,
|
|
203
|
-
lt: () => _lt,
|
|
204
|
-
lte: () => _lte,
|
|
205
|
-
map: () => map,
|
|
206
|
-
maxLength: () => _maxLength,
|
|
207
|
-
maxSize: () => _maxSize,
|
|
208
|
-
maximum: () => _lte,
|
|
209
|
-
merge: () => merge,
|
|
210
|
-
mime: () => _mime,
|
|
211
|
-
minLength: () => _minLength,
|
|
212
|
-
minSize: () => _minSize,
|
|
213
|
-
minimum: () => _gte,
|
|
214
|
-
multipleOf: () => _multipleOf,
|
|
215
|
-
nan: () => nan,
|
|
216
|
-
nanoid: () => nanoid,
|
|
217
|
-
nativeEnum: () => nativeEnum,
|
|
218
|
-
negative: () => _negative,
|
|
219
|
-
never: () => never,
|
|
220
|
-
nonnegative: () => _nonnegative,
|
|
221
|
-
nonoptional: () => nonoptional,
|
|
222
|
-
nonpositive: () => _nonpositive,
|
|
223
|
-
normalize: () => _normalize,
|
|
224
|
-
null: () => _null,
|
|
225
|
-
nullable: () => nullable,
|
|
226
|
-
nullish: () => nullish,
|
|
227
|
-
number: () => number,
|
|
228
|
-
object: () => object,
|
|
229
|
-
omit: () => omit,
|
|
230
|
-
optional: () => optional,
|
|
231
|
-
overwrite: () => _overwrite,
|
|
232
|
-
parse: () => parse,
|
|
233
|
-
parseAsync: () => parseAsync,
|
|
234
|
-
partial: () => partial,
|
|
235
|
-
partialRecord: () => partialRecord,
|
|
236
|
-
pick: () => pick,
|
|
237
|
-
pipe: () => pipe,
|
|
238
|
-
positive: () => _positive,
|
|
239
|
-
prefault: () => prefault,
|
|
240
|
-
prettifyError: () => prettifyError,
|
|
241
|
-
promise: () => promise,
|
|
242
|
-
property: () => _property,
|
|
243
|
-
readonly: () => readonly,
|
|
244
|
-
record: () => record,
|
|
245
|
-
refine: () => refine,
|
|
246
|
-
regex: () => _regex,
|
|
247
|
-
regexes: () => regexes_exports,
|
|
248
|
-
registry: () => registry,
|
|
249
|
-
required: () => required,
|
|
250
|
-
safeParse: () => safeParse,
|
|
251
|
-
safeParseAsync: () => safeParseAsync,
|
|
252
|
-
set: () => set,
|
|
253
|
-
size: () => _size,
|
|
254
|
-
startsWith: () => _startsWith,
|
|
255
|
-
strictObject: () => strictObject,
|
|
256
|
-
string: () => string,
|
|
257
|
-
stringFormat: () => stringFormat,
|
|
258
|
-
stringbool: () => stringbool,
|
|
259
|
-
success: () => success,
|
|
260
|
-
symbol: () => symbol,
|
|
261
|
-
templateLiteral: () => templateLiteral,
|
|
262
|
-
toJSONSchema: () => toJSONSchema,
|
|
263
|
-
toLowerCase: () => _toLowerCase,
|
|
264
|
-
toUpperCase: () => _toUpperCase,
|
|
265
|
-
transform: () => transform,
|
|
266
|
-
treeifyError: () => treeifyError,
|
|
267
|
-
trim: () => _trim,
|
|
268
|
-
tuple: () => tuple,
|
|
269
|
-
uint32: () => uint32,
|
|
270
|
-
uint64: () => uint64,
|
|
271
|
-
ulid: () => ulid,
|
|
272
|
-
undefined: () => _undefined,
|
|
273
|
-
union: () => union,
|
|
274
|
-
unknown: () => unknown,
|
|
275
|
-
uppercase: () => _uppercase,
|
|
276
|
-
url: () => url,
|
|
277
|
-
uuid: () => uuid,
|
|
278
|
-
uuidv4: () => uuidv4,
|
|
279
|
-
uuidv6: () => uuidv6,
|
|
280
|
-
uuidv7: () => uuidv7,
|
|
281
|
-
void: () => _void,
|
|
282
|
-
xid: () => xid
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
//#endregion
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,GAAU,OAAM,MAAM,EAAiB,kBA+FzD,CAAC"}
|
package/dist/cli.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { cwdResolver } from "@gaubee/node";
|
|
2
|
-
import yargs from "yargs";
|
|
3
|
-
import { hideBin } from "yargs/helpers";
|
|
4
|
-
import packageJson from "../package.json" with { type: "json" };
|
|
5
|
-
import { restartDaemon, startDaemon, statusDaemon, stopDaemon } from "./commands/daemon.js";
|
|
6
|
-
import { doctor } from "./commands/doctor/index.js";
|
|
7
|
-
import { init } from "./commands/init.js";
|
|
8
|
-
import { run } from "./commands/tasks/run.js";
|
|
9
|
-
export const runCli = async (args = process.argv) => {
|
|
10
|
-
const cli = await yargs(hideBin(args))
|
|
11
|
-
.scriptName("jixo")
|
|
12
|
-
.version(packageJson.version)
|
|
13
|
-
.command("doctor", "Check the requirements and health of the JIXO environment", (yargs) => yargs, () => {
|
|
14
|
-
doctor();
|
|
15
|
-
})
|
|
16
|
-
.command("init [dir]", "Create a new JIXO project configuration", (yargs) => {
|
|
17
|
-
return yargs.positional("dir", {
|
|
18
|
-
describe: "The directory to create the JIXO config",
|
|
19
|
-
default: "./",
|
|
20
|
-
});
|
|
21
|
-
}, (argv) => {
|
|
22
|
-
init(cwdResolver(argv.dir));
|
|
23
|
-
})
|
|
24
|
-
.command("run <goal>", "Run a JIXO job with a specific goal", (yargs) => {
|
|
25
|
-
return yargs
|
|
26
|
-
.positional("goal", {
|
|
27
|
-
describe: "The high-level goal for the job",
|
|
28
|
-
type: "string",
|
|
29
|
-
demandOption: true,
|
|
30
|
-
})
|
|
31
|
-
.option("dir", {
|
|
32
|
-
alias: "D",
|
|
33
|
-
type: "string",
|
|
34
|
-
description: "The project directory to run in",
|
|
35
|
-
default: process.cwd(),
|
|
36
|
-
})
|
|
37
|
-
.option("loop", {
|
|
38
|
-
alias: "L",
|
|
39
|
-
type: "number",
|
|
40
|
-
description: "The max loop times for the job",
|
|
41
|
-
default: 20,
|
|
42
|
-
});
|
|
43
|
-
}, (argv) => {
|
|
44
|
-
run({
|
|
45
|
-
jobGoal: argv.goal,
|
|
46
|
-
workDir: cwdResolver(argv.dir),
|
|
47
|
-
maxLoops: argv.loop,
|
|
48
|
-
});
|
|
49
|
-
})
|
|
50
|
-
.command("daemon <action>", "Manage the JIXO Core daemon", (yargs) => {
|
|
51
|
-
return yargs.positional("action", {
|
|
52
|
-
describe: "The action to perform on the daemon",
|
|
53
|
-
type: "string",
|
|
54
|
-
choices: ["start", "stop", "status", "restart"],
|
|
55
|
-
demandOption: true,
|
|
56
|
-
});
|
|
57
|
-
}, (argv) => {
|
|
58
|
-
switch (argv.action) {
|
|
59
|
-
case "start":
|
|
60
|
-
startDaemon();
|
|
61
|
-
break;
|
|
62
|
-
case "stop":
|
|
63
|
-
stopDaemon();
|
|
64
|
-
break;
|
|
65
|
-
case "status":
|
|
66
|
-
statusDaemon();
|
|
67
|
-
break;
|
|
68
|
-
case "restart":
|
|
69
|
-
restartDaemon();
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
.demandCommand(1, "You need at least one command before moving on")
|
|
74
|
-
.strict()
|
|
75
|
-
.help();
|
|
76
|
-
const argv = await cli.parse();
|
|
77
|
-
if (argv._.length === 0) {
|
|
78
|
-
cli.showHelp();
|
|
79
|
-
console.log(" " + "─".repeat(Math.max(4, process.stdout.columns - 2)));
|
|
80
|
-
await doctor();
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["import {cwdResolver} from \"@gaubee/node\";\nimport yargs from \"yargs\";\nimport {hideBin} from \"yargs/helpers\";\nimport packageJson from \"../package.json\" with {type: \"json\"};\nimport {restartDaemon, startDaemon, statusDaemon, stopDaemon} from \"./commands/daemon.js\";\nimport {doctor} from \"./commands/doctor/index.js\";\nimport {init} from \"./commands/init.js\";\nimport {run} from \"./commands/tasks/run.js\";\n\nexport const runCli = async (args: string[] = process.argv) => {\n const cli = await yargs(hideBin(args))\n .scriptName(\"jixo\")\n .version(packageJson.version)\n .command(\n \"doctor\",\n \"Check the requirements and health of the JIXO environment\",\n (yargs) => yargs,\n () => {\n doctor();\n },\n )\n .command(\n \"init [dir]\",\n \"Create a new JIXO project configuration\",\n (yargs) => {\n return yargs.positional(\"dir\", {\n describe: \"The directory to create the JIXO config\",\n default: \"./\",\n });\n },\n (argv) => {\n init(cwdResolver(argv.dir));\n },\n )\n .command(\n \"run <goal>\",\n \"Run a JIXO job with a specific goal\",\n (yargs) => {\n return yargs\n .positional(\"goal\", {\n describe: \"The high-level goal for the job\",\n type: \"string\",\n demandOption: true,\n })\n .option(\"dir\", {\n alias: \"D\",\n type: \"string\",\n description: \"The project directory to run in\",\n default: process.cwd(),\n })\n .option(\"loop\", {\n alias: \"L\",\n type: \"number\",\n description: \"The max loop times for the job\",\n default: 20,\n });\n },\n (argv) => {\n run({\n jobGoal: argv.goal,\n workDir: cwdResolver(argv.dir),\n maxLoops: argv.loop,\n });\n },\n )\n .command(\n \"daemon <action>\",\n \"Manage the JIXO Core daemon\",\n (yargs) => {\n return yargs.positional(\"action\", {\n describe: \"The action to perform on the daemon\",\n type: \"string\",\n choices: [\"start\", \"stop\", \"status\", \"restart\"],\n demandOption: true,\n });\n },\n (argv) => {\n switch (argv.action) {\n case \"start\":\n startDaemon();\n break;\n case \"stop\":\n stopDaemon();\n break;\n case \"status\":\n statusDaemon();\n break;\n case \"restart\":\n restartDaemon();\n break;\n }\n },\n )\n .demandCommand(1, \"You need at least one command before moving on\")\n .strict()\n .help();\n\n const argv = await cli.parse();\n\n if (argv._.length === 0) {\n cli.showHelp();\n console.log(\" \" + \"─\".repeat(Math.max(4, process.stdout.columns - 2)));\n await doctor();\n }\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,YAGvB,CAAC;AAEF,eAAO,MAAM,UAAU,YAEtB,CAAC;AAEF,eAAO,MAAM,YAAY,YAGxB,CAAC;AAEF,eAAO,MAAM,aAAa,YAIzB,CAAC"}
|
package/dist/commands/daemon.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { green, red, yellow } from "@gaubee/nodekit";
|
|
2
|
-
// NOTE: This is a placeholder implementation. A robust solution would use
|
|
3
|
-
// libraries like 'pm2', 'forever', or manage PID files directly.
|
|
4
|
-
export const startDaemon = () => {
|
|
5
|
-
console.log(green("Starting JIXO Core service in the background... (stub)"));
|
|
6
|
-
console.log(yellow("In a real implementation, this would spawn the core service process."));
|
|
7
|
-
};
|
|
8
|
-
export const stopDaemon = () => {
|
|
9
|
-
console.log(red("Stopping JIXO Core service... (stub)"));
|
|
10
|
-
};
|
|
11
|
-
export const statusDaemon = () => {
|
|
12
|
-
console.log(yellow("Checking JIXO Core service status... (stub)"));
|
|
13
|
-
console.log("Service is not running (default stub response).");
|
|
14
|
-
};
|
|
15
|
-
export const restartDaemon = () => {
|
|
16
|
-
console.log(yellow("Restarting JIXO Core service... (stub)"));
|
|
17
|
-
stopDaemon();
|
|
18
|
-
startDaemon();
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=daemon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEnD,0EAA0E;AAC1E,iEAAiE;AAEjE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAC9D,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;AAChB,CAAC,CAAC","sourcesContent":["import {green, red, yellow} from \"@gaubee/nodekit\";\n\n// NOTE: This is a placeholder implementation. A robust solution would use\n// libraries like 'pm2', 'forever', or manage PID files directly.\n\nexport const startDaemon = () => {\n console.log(green(\"Starting JIXO Core service in the background... (stub)\"));\n console.log(yellow(\"In a real implementation, this would spawn the core service process.\"));\n};\n\nexport const stopDaemon = () => {\n console.log(red(\"Stopping JIXO Core service... (stub)\"));\n};\n\nexport const statusDaemon = () => {\n console.log(yellow(\"Checking JIXO Core service status... (stub)\"));\n console.log(\"Service is not running (default stub response).\");\n};\n\nexport const restartDaemon = () => {\n console.log(yellow(\"Restarting JIXO Core service... (stub)\"));\n stopDaemon();\n startDaemon();\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,YAc5B,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { blue, green } from "@gaubee/nodekit";
|
|
2
|
-
export const myDoctorConfig = [
|
|
3
|
-
{
|
|
4
|
-
id: "jixo-core-service",
|
|
5
|
-
displayName: "JIXO Core Service",
|
|
6
|
-
installationHint: `Ensure the JIXO Core service is running. You can start it with 'jixo daemon start'.`,
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
id: "pnpm",
|
|
10
|
-
displayName: "PNPM Package Manager",
|
|
11
|
-
versionCommand: "pnpm --version",
|
|
12
|
-
versionParseRegex: /(\d+\.\d+\.\d+)/, // Assumes pnpm --version outputs just the version or "X.Y.Z ..."
|
|
13
|
-
minVersion: "10.9.0",
|
|
14
|
-
installationHint: `Install pnpm via npm: ${green("npm install -g pnpm")}. Or visit ${blue("https://pnpm.io/installation")}`,
|
|
15
|
-
},
|
|
16
|
-
];
|
|
17
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/doctor/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAG5C,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C;QACE,EAAE,EAAE,mBAAmB;QACvB,WAAW,EAAE,mBAAmB;QAChC,gBAAgB,EAAE,qFAAqF;KACxG;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,sBAAsB;QACnC,cAAc,EAAE,gBAAgB;QAChC,iBAAiB,EAAE,iBAAiB,EAAE,iEAAiE;QACvG,UAAU,EAAE,QAAQ;QACpB,gBAAgB,EAAE,yBAAyB,KAAK,CAAC,qBAAqB,CAAC,cAAc,IAAI,CAAC,8BAA8B,CAAC,EAAE;KAC5H;CACF,CAAC","sourcesContent":["import {blue, green} from \"@gaubee/nodekit\";\nimport type {DoctorConfig} from \"./types.js\";\n\nexport const myDoctorConfig: DoctorConfig = [\n {\n id: \"jixo-core-service\",\n displayName: \"JIXO Core Service\",\n installationHint: `Ensure the JIXO Core service is running. You can start it with 'jixo daemon start'.`,\n },\n {\n id: \"pnpm\",\n displayName: \"PNPM Package Manager\",\n versionCommand: \"pnpm --version\",\n versionParseRegex: /(\\d+\\.\\d+\\.\\d+)/, // Assumes pnpm --version outputs just the version or \"X.Y.Z ...\"\n minVersion: \"10.9.0\",\n installationHint: `Install pnpm via npm: ${green(\"npm install -g pnpm\")}. Or visit ${blue(\"https://pnpm.io/installation\")}`,\n },\n];\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/doctor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AA4C5E,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,GAAE,OAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAkHtG"}
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { blue, cyan, green, red, spinner, yellow } from "@gaubee/nodekit";
|
|
2
|
-
import { iter_map_not_null } from "@gaubee/util";
|
|
3
|
-
import { execSync } from "node:child_process";
|
|
4
|
-
import semver from "semver";
|
|
5
|
-
import { safeEnv } from "../../env.js";
|
|
6
|
-
const CHECK_MARK = green("✔");
|
|
7
|
-
const CROSS_MARK = red("✖");
|
|
8
|
-
const WARN_MARK = yellow("⚠");
|
|
9
|
-
async function executeCommand(command) {
|
|
10
|
-
return new Promise((resolve) => {
|
|
11
|
-
try {
|
|
12
|
-
const stdout = execSync(command, { encoding: "utf8", stdio: "pipe" });
|
|
13
|
-
resolve({ stdout, stderr: "" });
|
|
14
|
-
}
|
|
15
|
-
catch (e) {
|
|
16
|
-
resolve({ stdout: "", stderr: e.stderr || "", error: e });
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
async function checkServiceHealth(id, displayName, hint) {
|
|
21
|
-
const result = {
|
|
22
|
-
id,
|
|
23
|
-
displayName,
|
|
24
|
-
exists: false,
|
|
25
|
-
meetsVersionRequirement: false,
|
|
26
|
-
isOptional: false,
|
|
27
|
-
message: "",
|
|
28
|
-
installationHint: hint,
|
|
29
|
-
};
|
|
30
|
-
const url = `${safeEnv.JIXO_CORE_URL}/jixo/v1/health`;
|
|
31
|
-
try {
|
|
32
|
-
const response = await fetch(url, { signal: AbortSignal.timeout(3000) });
|
|
33
|
-
if (response.ok) {
|
|
34
|
-
result.exists = true;
|
|
35
|
-
result.meetsVersionRequirement = true;
|
|
36
|
-
result.message = `Service is running and healthy at ${url}`;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
result.message = `Service responded with status ${response.status} at ${url}`;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
result.message = `Could not connect to service at ${url}. Is it running?`;
|
|
44
|
-
}
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
export async function runDoctor(config, enableLog = true) {
|
|
48
|
-
const LOG_TITLE = "Running Environment Doctor 🏥\n\n";
|
|
49
|
-
const logger = spinner(LOG_TITLE);
|
|
50
|
-
if (enableLog) {
|
|
51
|
-
logger.start();
|
|
52
|
-
}
|
|
53
|
-
const results = [];
|
|
54
|
-
let overallSuccess = true;
|
|
55
|
-
let overallWarn = false;
|
|
56
|
-
const tool_logs = [];
|
|
57
|
-
for (const [index, tool] of config.entries()) {
|
|
58
|
-
const TOOL_LOG_TITLE = `${blue(`[${tool.id}]`)} ${cyan(tool.displayName)}`;
|
|
59
|
-
const SUCCESS_MARK = () => CHECK_MARK;
|
|
60
|
-
const FAIL_MARK = () => {
|
|
61
|
-
overallWarn = true;
|
|
62
|
-
return tool.optional ? WARN_MARK : CROSS_MARK;
|
|
63
|
-
};
|
|
64
|
-
const setToolLog = (update) => {
|
|
65
|
-
const log = update(tool_logs[index] ?? "");
|
|
66
|
-
tool_logs[index] = (Array.isArray(log) ? iter_map_not_null(log, (v) => (v ? v : null)) : [log]).map((line) => " " + line).join("\n");
|
|
67
|
-
logger.text = LOG_TITLE + tool_logs.join("\n");
|
|
68
|
-
};
|
|
69
|
-
setToolLog(() => `Checking ${TOOL_LOG_TITLE}... `);
|
|
70
|
-
let tool_log = [];
|
|
71
|
-
let result;
|
|
72
|
-
if (!tool.versionCommand) {
|
|
73
|
-
// Custom check logic for services
|
|
74
|
-
result = await checkServiceHealth(tool.id, tool.displayName, tool.installationHint);
|
|
75
|
-
if (result.exists) {
|
|
76
|
-
tool_log = [`${SUCCESS_MARK()} ${TOOL_LOG_TITLE}`, ` ${green(result.message)}`];
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
tool_log = [`${FAIL_MARK()} ${TOOL_LOG_TITLE}`, ` ${red(result.message)}`, tool.installationHint && ` ${yellow("Hint:")} ${tool.installationHint}`];
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
// Original command-based check logic
|
|
84
|
-
result = {
|
|
85
|
-
id: tool.id,
|
|
86
|
-
displayName: tool.displayName,
|
|
87
|
-
exists: false,
|
|
88
|
-
meetsVersionRequirement: false,
|
|
89
|
-
isOptional: !!tool.optional,
|
|
90
|
-
message: "",
|
|
91
|
-
requiredVersion: tool.minVersion,
|
|
92
|
-
installationHint: tool.installationHint,
|
|
93
|
-
};
|
|
94
|
-
const execResult = await executeCommand(tool.versionCommand);
|
|
95
|
-
if (execResult.error || execResult.stderr.includes("command not found") || execResult.stderr.includes("not recognized")) {
|
|
96
|
-
result.exists = false;
|
|
97
|
-
result.message = `'${tool.id}' command not found or failed to execute.`;
|
|
98
|
-
tool_log = [`${FAIL_MARK()} ${TOOL_LOG_TITLE}`, ` ${red(result.message)}`, tool.installationHint && ` ${yellow("Hint:")} ${tool.installationHint}`];
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
result.exists = true;
|
|
102
|
-
const output = execResult.stdout.trim();
|
|
103
|
-
const match = output.match(tool.versionParseRegex);
|
|
104
|
-
if (match && match[1]) {
|
|
105
|
-
result.version = semver.clean(match[1]) || undefined;
|
|
106
|
-
if (result.version) {
|
|
107
|
-
if (tool.minVersion) {
|
|
108
|
-
if (semver.gte(result.version, tool.minVersion)) {
|
|
109
|
-
result.meetsVersionRequirement = true;
|
|
110
|
-
result.message = `Version ${result.version} satisfies >=${tool.minVersion}.`;
|
|
111
|
-
tool_log.push(`${SUCCESS_MARK()} ${TOOL_LOG_TITLE} (v${result.version})`);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
result.meetsVersionRequirement = false;
|
|
115
|
-
result.message = `Version ${result.version} is older than required >=${tool.minVersion}.`;
|
|
116
|
-
tool_log.push(`${FAIL_MARK()} ${TOOL_LOG_TITLE} (v${result.version} - required: >=${tool.minVersion})`);
|
|
117
|
-
if (tool.installationHint) {
|
|
118
|
-
tool_log.push(` ${yellow("Hint:")} ${tool.installationHint}`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
result.meetsVersionRequirement = true;
|
|
124
|
-
result.message = `Found version ${result.version}. No minimum version specified.`;
|
|
125
|
-
tool_log.push(`${SUCCESS_MARK()} ${TOOL_LOG_TITLE} (v${result.version} - existence check only)`);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
result.meetsVersionRequirement = false;
|
|
130
|
-
result.message = `Could not parse a valid version string from output: "${output}".`;
|
|
131
|
-
tool_log.push(`${FAIL_MARK()} ${TOOL_LOG_TITLE}`);
|
|
132
|
-
tool_log.push(` ${red(result.message)}`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
result.meetsVersionRequirement = false;
|
|
137
|
-
result.message = `Could not parse version from output: "${output}".`;
|
|
138
|
-
tool_log.push(`${FAIL_MARK()} ${TOOL_LOG_TITLE}`);
|
|
139
|
-
tool_log.push(` ${red(result.message)}`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
setToolLog(() => tool_log);
|
|
144
|
-
results.push(result);
|
|
145
|
-
if (!result.meetsVersionRequirement && !result.isOptional) {
|
|
146
|
-
overallSuccess = false;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
const LOG_SUMMERY = `${overallSuccess ? (overallWarn ? "⚠️ " : "✅") : "💊"} JIXO Environment Doctor 🏥\n\n`;
|
|
150
|
-
logger.stopAndPersist({
|
|
151
|
-
text: LOG_SUMMERY + tool_logs.join("\n") + "\n",
|
|
152
|
-
});
|
|
153
|
-
return {
|
|
154
|
-
overallSuccess,
|
|
155
|
-
results,
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=doctor.js.map
|