@songtonyli/dsh-cli 0.1.7 → 0.1.9
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 +1 -1
- package/bin/dsh.mjs +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-brand-official/lib/client.js +1 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-tui-app/lib/index.js +184 -42
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +1 -1
- package/node_modules/@deepseek-ai/node-addon-system/package.json +1 -2
- package/node_modules/@vscode/ripgrep/package.json +1 -15
- package/node_modules/koffi/package.json +0 -22
- package/node_modules/node-addon-require-builtin/package.json +0 -9
- package/node_modules/sharp/package.json +0 -27
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ workspace and no build step. Native packages that ship one build per platform
|
|
|
26
26
|
ripgrep, the PTY backend's addons, sharp, koffi, and the Landlock launcher — are
|
|
27
27
|
ordinary optional dependencies, so npm resolves the right one for your machine.
|
|
28
28
|
|
|
29
|
-
Requires Node `^22.19.0 || >=24.0.0`. Version 0.1.
|
|
29
|
+
Requires Node `^22.19.0 || >=24.0.0`. Version 0.1.9; `dsh --version`
|
|
30
30
|
also reports the harness build the package was assembled from.
|
|
31
31
|
|
|
32
32
|
## License
|
package/bin/dsh.mjs
CHANGED
|
@@ -18,7 +18,7 @@ const argv = process.argv.slice(2)
|
|
|
18
18
|
// version this package publishes. Reporting only one of the two would make an
|
|
19
19
|
// ordinary `npm install @songtonyli/dsh-cli@x` look like it installed something else.
|
|
20
20
|
if (argv.length === 1 && (argv[0] === '--version' || argv[0] === '-V')) {
|
|
21
|
-
console.log('@songtonyli/dsh-cli 0.1.
|
|
21
|
+
console.log('@songtonyli/dsh-cli 0.1.9 (deepseek-harness 0.1.6-alpha.1)')
|
|
22
22
|
process.exit(0)
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -33,6 +33,7 @@ window.__ModuleLoader__.load({
|
|
|
33
33
|
* @param ctx - Client root context.
|
|
34
34
|
*/
|
|
35
35
|
function apply(ctx) {
|
|
36
|
+
if ({}.DSH_CLIENT_BUILD_PROFILE !== "official") return;
|
|
36
37
|
ctx.slots.inject("sidebar.brand.mark", () => ctx.slots.inject("sidebar.brand.name", function* () {
|
|
37
38
|
yield ctx.slots.register({ name: "sidebar.brand.mark" }, OfficialBrandMark);
|
|
38
39
|
yield ctx.slots.register({ name: "sidebar.brand.name" }, OfficialBrandName);
|
|
@@ -260,7 +260,7 @@ window.__ModuleLoader__.load({
|
|
|
260
260
|
const onRightbarDrag = (0, react.useCallback)((dx) => {
|
|
261
261
|
actions.setRightbar(rightbarBase.current - dx);
|
|
262
262
|
}, [actions]);
|
|
263
|
-
const productTitle =
|
|
263
|
+
const productTitle = {}.DSH_CLIENT_TITLE ?? t("brand.localBuild");
|
|
264
264
|
const sidebar = (0, react.useMemo)(() => renderSlot("sidebar", {
|
|
265
265
|
collapsed: sidebarCollapsed,
|
|
266
266
|
width: cols.sidebar
|
|
@@ -100,7 +100,7 @@ window.__ModuleLoader__.load({
|
|
|
100
100
|
const SCROLLBAR_LINGER_MS = 2e3;
|
|
101
101
|
/** Format complete-build metadata for the local brand badge. */
|
|
102
102
|
function localBuildVersion() {
|
|
103
|
-
return `0.1.6-alpha.1-
|
|
103
|
+
return `0.1.6-alpha.1-03fee86-dirty`;
|
|
104
104
|
}
|
|
105
105
|
/** Each panel row subscribes only to its own selection state. */
|
|
106
106
|
function PanelRow({ id, label, wide, usePanelInfo, selectPanel, renderSlot }) {
|
|
@@ -927,6 +927,59 @@ function editorCompletion(sources) {
|
|
|
927
927
|
}
|
|
928
928
|
};
|
|
929
929
|
}
|
|
930
|
+
/** What the provider-default row is called. */
|
|
931
|
+
const PROVIDER_DEFAULT_LABEL = "Provider default";
|
|
932
|
+
/** The `/effort` argument that restores the provider default. */
|
|
933
|
+
const DEFAULT_ARGUMENT = "default";
|
|
934
|
+
/**
|
|
935
|
+
* The display name of one effort.
|
|
936
|
+
* @param reasoning - what the model declares.
|
|
937
|
+
* @param effort - the selected effort, or undefined for the provider default.
|
|
938
|
+
* @returns the declared name, the raw id when the model no longer declares it, or the provider-default label.
|
|
939
|
+
*/
|
|
940
|
+
function effortName(reasoning, effort) {
|
|
941
|
+
if (effort === void 0) return PROVIDER_DEFAULT_LABEL;
|
|
942
|
+
return reasoning.efforts.find((candidate) => candidate.id === effort)?.name ?? effort;
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Picker rows for one model: the provider default above the adapter's own order.
|
|
946
|
+
* @param reasoning - what the model declares.
|
|
947
|
+
* @returns the rows, provider default first.
|
|
948
|
+
*/
|
|
949
|
+
function effortItems(reasoning) {
|
|
950
|
+
const resolved = reasoning.defaultEffort === void 0 ? void 0 : `resolves to ${effortName(reasoning, reasoning.defaultEffort)}`;
|
|
951
|
+
return [{
|
|
952
|
+
value: "",
|
|
953
|
+
label: PROVIDER_DEFAULT_LABEL,
|
|
954
|
+
...resolved === void 0 ? {} : { description: resolved }
|
|
955
|
+
}, ...reasoning.efforts.map((effort) => ({
|
|
956
|
+
value: effort.id,
|
|
957
|
+
label: effort.name,
|
|
958
|
+
...effort.description === void 0 ? {} : { description: effort.description }
|
|
959
|
+
}))];
|
|
960
|
+
}
|
|
961
|
+
/**
|
|
962
|
+
* The dim row under the picker heading.
|
|
963
|
+
* @param reasoning - what the model declares.
|
|
964
|
+
* @param effort - the effort in force, or undefined for the provider default.
|
|
965
|
+
* @returns one row naming the effort in force and the keys that change it.
|
|
966
|
+
*/
|
|
967
|
+
function effortHint(reasoning, effort) {
|
|
968
|
+
return `current: ${effortName(reasoning, effort)} · Esc keeps it · Shift+Tab cycles`;
|
|
969
|
+
}
|
|
970
|
+
/**
|
|
971
|
+
* The effort a typed `/effort` argument names. A declared id wins over the
|
|
972
|
+
* `default` keyword, so an adapter may own that id.
|
|
973
|
+
* @param reasoning - what the model declares.
|
|
974
|
+
* @param typed - the argument, matched against declared ids without case.
|
|
975
|
+
* @returns the declared effort, undefined for the provider default, or null when the model declares no such effort.
|
|
976
|
+
*/
|
|
977
|
+
function matchEffort(reasoning, typed) {
|
|
978
|
+
const wanted = typed.toLowerCase();
|
|
979
|
+
const declared = reasoning.efforts.find((effort) => effort.id.toLowerCase() === wanted);
|
|
980
|
+
if (declared !== void 0) return declared.id;
|
|
981
|
+
return wanted === DEFAULT_ARGUMENT ? void 0 : null;
|
|
982
|
+
}
|
|
930
983
|
//#endregion
|
|
931
984
|
//#region lib/types/export.js
|
|
932
985
|
/**
|
|
@@ -1034,6 +1087,13 @@ var ListPrompt = class {
|
|
|
1034
1087
|
settle(value) {
|
|
1035
1088
|
this.settlement.settle(value);
|
|
1036
1089
|
}
|
|
1090
|
+
/**
|
|
1091
|
+
* Open the list on one row instead of the first.
|
|
1092
|
+
* @param index - the row to highlight.
|
|
1093
|
+
*/
|
|
1094
|
+
highlight(index) {
|
|
1095
|
+
this.list.setSelectedIndex(index);
|
|
1096
|
+
}
|
|
1037
1097
|
handleInput(data) {
|
|
1038
1098
|
this.list.handleInput(data);
|
|
1039
1099
|
}
|
|
@@ -1074,10 +1134,17 @@ var ApprovalPrompt = class extends ListPrompt {
|
|
|
1074
1134
|
this.settle("cancelled");
|
|
1075
1135
|
}
|
|
1076
1136
|
};
|
|
1137
|
+
/** Marks the row a picker opened on, so it stays visible after the highlight moves. */
|
|
1138
|
+
const CURRENT_MARK = " ✓";
|
|
1077
1139
|
/** A generic list picker (models, sessions); Escape settles undefined. */
|
|
1078
1140
|
var PickPrompt = class extends ListPrompt {
|
|
1079
|
-
constructor(palette, title, items) {
|
|
1080
|
-
|
|
1141
|
+
constructor(palette, title, items, options = {}) {
|
|
1142
|
+
const inForce = items.findIndex((item) => item.value === options.current);
|
|
1143
|
+
super(palette, `${palette.accent("?")} ${palette.bold(title)}`, options.body ?? [], items.map((item, index) => index === inForce ? {
|
|
1144
|
+
...item,
|
|
1145
|
+
label: `${item.label}${CURRENT_MARK}`
|
|
1146
|
+
} : { ...item }), (row) => items.find((item) => item.value === row.value), () => void 0);
|
|
1147
|
+
if (inForce > 0) this.highlight(inForce);
|
|
1081
1148
|
}
|
|
1082
1149
|
withdraw() {
|
|
1083
1150
|
this.settle(void 0);
|
|
@@ -1549,6 +1616,10 @@ const LOCAL_COMMANDS = [
|
|
|
1549
1616
|
name: "model",
|
|
1550
1617
|
description: "Pick the model and reasoning effort for the next request (/model provider/model, /model save)"
|
|
1551
1618
|
},
|
|
1619
|
+
{
|
|
1620
|
+
name: "effort",
|
|
1621
|
+
description: "Pick the current model's reasoning effort for the next request (/effort <id>, /effort default)"
|
|
1622
|
+
},
|
|
1552
1623
|
{
|
|
1553
1624
|
name: "sessions",
|
|
1554
1625
|
description: "Switch to another session"
|
|
@@ -2041,6 +2112,9 @@ var TuiApp = class {
|
|
|
2041
2112
|
case "model":
|
|
2042
2113
|
await this.chooseModel(argument);
|
|
2043
2114
|
return;
|
|
2115
|
+
case "effort":
|
|
2116
|
+
await this.chooseCurrentEffort(argument);
|
|
2117
|
+
return;
|
|
2044
2118
|
case "sessions":
|
|
2045
2119
|
await this.chooseSession();
|
|
2046
2120
|
return;
|
|
@@ -2167,7 +2241,8 @@ var TuiApp = class {
|
|
|
2167
2241
|
this.notice("no models are available from the composed providers", "error");
|
|
2168
2242
|
return;
|
|
2169
2243
|
}
|
|
2170
|
-
const
|
|
2244
|
+
const current = this.currentSelection();
|
|
2245
|
+
const picked = await this.modals.run(new PickPrompt(this.deps.palette, "Model for the next request", items, { current: `${current.provider}/${current.model}` }));
|
|
2171
2246
|
if (picked === void 0) return;
|
|
2172
2247
|
const slash = picked.value.indexOf("/");
|
|
2173
2248
|
next = {
|
|
@@ -2185,68 +2260,135 @@ var TuiApp = class {
|
|
|
2185
2260
|
this.refreshFooter();
|
|
2186
2261
|
}
|
|
2187
2262
|
/**
|
|
2188
|
-
* Offer the model's reasoning efforts when it declares more than one.
|
|
2263
|
+
* Offer the model's reasoning efforts when it declares more than one. The
|
|
2264
|
+
* picker opens on the effort already in force for that exact model.
|
|
2265
|
+
* @param model - the model the user picked.
|
|
2189
2266
|
* @returns the chosen effort, undefined for the provider default, or null when dismissed or the model is unknown.
|
|
2190
2267
|
*/
|
|
2191
2268
|
async chooseEffort(model) {
|
|
2192
|
-
const
|
|
2193
|
-
if (
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
efforts = (await llm.resolveModelInfo(model.provider, model.model)).reasoning?.efforts ?? [];
|
|
2197
|
-
} catch (error) {
|
|
2198
|
-
this.notice(`${model.provider}/${model.model}: ${describeFailure(error)}`, "error");
|
|
2269
|
+
const lookup = await this.lookupEfforts(model);
|
|
2270
|
+
if (this.stopped) return null;
|
|
2271
|
+
if (lookup.kind === "failed") {
|
|
2272
|
+
this.notice(lookup.message, "error");
|
|
2199
2273
|
return null;
|
|
2200
2274
|
}
|
|
2201
|
-
if (
|
|
2202
|
-
const
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
...effort.description === void 0 ? {} : { description: effort.description }
|
|
2209
|
-
}))];
|
|
2210
|
-
const picked = await this.modals.run(new PickPrompt(this.deps.palette, `Reasoning effort for ${model.model}`, items));
|
|
2275
|
+
if (lookup.kind !== "ready") return void 0;
|
|
2276
|
+
const current = this.currentSelection();
|
|
2277
|
+
const sameModel = current.provider === model.provider && current.model === model.model;
|
|
2278
|
+
const picked = await this.modals.run(new PickPrompt(this.deps.palette, `Reasoning effort · ${model.provider}/${model.model}`, effortItems(lookup.reasoning), {
|
|
2279
|
+
body: ["Esc cancels the model change"],
|
|
2280
|
+
current: (sameModel ? current.reasoningEffort : void 0) ?? ""
|
|
2281
|
+
}));
|
|
2211
2282
|
if (picked === void 0) return null;
|
|
2212
2283
|
return picked.value === "" ? void 0 : ReasoningEffortId(picked.value);
|
|
2213
2284
|
}
|
|
2214
2285
|
/**
|
|
2286
|
+
* Choose the bound model's reasoning effort for the next request: an empty
|
|
2287
|
+
* argument opens the picker on the effort in force, `default` restores the
|
|
2288
|
+
* provider default, and anything else names a declared effort.
|
|
2289
|
+
* @param argument - a declared effort id, `default`, or empty.
|
|
2290
|
+
*/
|
|
2291
|
+
async chooseCurrentEffort(argument) {
|
|
2292
|
+
const current = this.currentSelection();
|
|
2293
|
+
const lookup = await this.lookupEfforts(current);
|
|
2294
|
+
if (this.stopped) return;
|
|
2295
|
+
if (lookup.kind !== "ready") {
|
|
2296
|
+
this.reportEffortLookup(lookup, current);
|
|
2297
|
+
return;
|
|
2298
|
+
}
|
|
2299
|
+
const { reasoning } = lookup;
|
|
2300
|
+
if (argument !== "") {
|
|
2301
|
+
const matched = matchEffort(reasoning, argument);
|
|
2302
|
+
if (matched === null) {
|
|
2303
|
+
const declared = reasoning.efforts.map((effort) => effort.id).join(", ");
|
|
2304
|
+
this.notice(`${current.provider}/${current.model} has no effort "${argument}" (${declared}, default)`, "error");
|
|
2305
|
+
return;
|
|
2306
|
+
}
|
|
2307
|
+
this.applyEffort(current, matched);
|
|
2308
|
+
return;
|
|
2309
|
+
}
|
|
2310
|
+
const picked = await this.modals.run(new PickPrompt(this.deps.palette, `Reasoning effort · ${current.provider}/${current.model}`, effortItems(reasoning), {
|
|
2311
|
+
body: [effortHint(reasoning, current.reasoningEffort)],
|
|
2312
|
+
current: current.reasoningEffort ?? ""
|
|
2313
|
+
}));
|
|
2314
|
+
if (picked === void 0) return;
|
|
2315
|
+
this.applyEffort(current, picked.value === "" ? void 0 : ReasoningEffortId(picked.value));
|
|
2316
|
+
}
|
|
2317
|
+
/**
|
|
2215
2318
|
* Advance the bound selection to the next reasoning effort, wrapping through
|
|
2216
2319
|
* the provider default. A model with fewer than two efforts has nothing to cycle.
|
|
2217
2320
|
*/
|
|
2218
2321
|
async cycleEffort() {
|
|
2219
2322
|
if (this.stopped || this.modals.isActive()) return;
|
|
2220
2323
|
const current = this.currentSelection();
|
|
2221
|
-
const
|
|
2222
|
-
if (
|
|
2223
|
-
|
|
2324
|
+
const lookup = await this.lookupEfforts(current);
|
|
2325
|
+
if (this.stopped) return;
|
|
2326
|
+
if (lookup.kind !== "ready") {
|
|
2327
|
+
this.reportEffortLookup(lookup, current);
|
|
2224
2328
|
return;
|
|
2225
2329
|
}
|
|
2226
|
-
|
|
2330
|
+
const steps = [void 0, ...lookup.reasoning.efforts.map((effort) => effort.id)];
|
|
2331
|
+
const index = steps.findIndex((step) => step === current.reasoningEffort);
|
|
2332
|
+
this.applyEffort(current, steps[index === -1 ? 1 : (index + 1) % steps.length]);
|
|
2333
|
+
}
|
|
2334
|
+
/**
|
|
2335
|
+
* Read what one model declares about reasoning effort.
|
|
2336
|
+
* @param model - the model to resolve.
|
|
2337
|
+
* @returns the declared efforts, or why the terminal has none to offer.
|
|
2338
|
+
*/
|
|
2339
|
+
async lookupEfforts(model) {
|
|
2340
|
+
const llm = this.deps.ctx.get("llm");
|
|
2341
|
+
if (llm === void 0) return { kind: "no-catalog" };
|
|
2342
|
+
let reasoning;
|
|
2227
2343
|
try {
|
|
2228
|
-
|
|
2344
|
+
reasoning = (await llm.resolveModelInfo(model.provider, model.model)).reasoning;
|
|
2229
2345
|
} catch (error) {
|
|
2230
|
-
|
|
2231
|
-
|
|
2346
|
+
return {
|
|
2347
|
+
kind: "failed",
|
|
2348
|
+
message: `${model.provider}/${model.model}: ${describeFailure(error)}`
|
|
2349
|
+
};
|
|
2232
2350
|
}
|
|
2233
|
-
if (
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2351
|
+
if (reasoning === void 0 || reasoning.efforts.length < 2) return { kind: "no-efforts" };
|
|
2352
|
+
return {
|
|
2353
|
+
kind: "ready",
|
|
2354
|
+
reasoning
|
|
2355
|
+
};
|
|
2356
|
+
}
|
|
2357
|
+
/**
|
|
2358
|
+
* Print why a model offers no effort to choose.
|
|
2359
|
+
* @param lookup - a lookup that resolved no efforts.
|
|
2360
|
+
* @param model - the model it was read for.
|
|
2361
|
+
*/
|
|
2362
|
+
reportEffortLookup(lookup, model) {
|
|
2363
|
+
switch (lookup.kind) {
|
|
2364
|
+
case "no-catalog":
|
|
2365
|
+
this.notice("no model catalog is composed", "error");
|
|
2366
|
+
return;
|
|
2367
|
+
case "failed":
|
|
2368
|
+
this.notice(lookup.message, "error");
|
|
2369
|
+
return;
|
|
2370
|
+
case "no-efforts":
|
|
2371
|
+
this.notice(`${model.provider}/${model.model} has no selectable reasoning efforts`);
|
|
2372
|
+
return;
|
|
2373
|
+
/* v8 ignore next -- closed-union exhaustiveness guard */
|
|
2374
|
+
default: assertNever(lookup, "effort lookup");
|
|
2237
2375
|
}
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2376
|
+
}
|
|
2377
|
+
/**
|
|
2378
|
+
* Install one reasoning effort on the bound selection for the next request.
|
|
2379
|
+
* @param model - the provider and model the effort belongs to.
|
|
2380
|
+
* @param effort - the chosen effort, or undefined for the provider default.
|
|
2381
|
+
*/
|
|
2382
|
+
applyEffort(model, effort) {
|
|
2383
|
+
this.bound.selection.current = effort === void 0 ? {
|
|
2384
|
+
provider: model.provider,
|
|
2385
|
+
model: model.model
|
|
2244
2386
|
} : {
|
|
2245
|
-
provider:
|
|
2246
|
-
model:
|
|
2247
|
-
reasoningEffort:
|
|
2387
|
+
provider: model.provider,
|
|
2388
|
+
model: model.model,
|
|
2389
|
+
reasoningEffort: effort
|
|
2248
2390
|
};
|
|
2249
|
-
this.notice(
|
|
2391
|
+
this.notice(effort === void 0 ? "effort: provider default from the next request" : `effort ${effort} from the next request`, "success");
|
|
2250
2392
|
this.refreshFooter();
|
|
2251
2393
|
}
|
|
2252
2394
|
async modelItems() {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<link rel="manifest" href="./manifest.webmanifest" />
|
|
7
7
|
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
|
|
8
|
-
<title>
|
|
8
|
+
<title>DSH Local Build</title>
|
|
9
9
|
<script type="module" crossorigin src="./assets/index-Ly7KS3xS.js"></script>
|
|
10
10
|
<link rel="modulepreload" crossorigin href="./assets/vendor-CCJJTK99.js">
|
|
11
11
|
<link rel="stylesheet" crossorigin href="./assets/vendor-BNsW4eBh.css">
|
|
@@ -21,19 +21,5 @@
|
|
|
21
21
|
"url": "https://github.com/microsoft/vscode-ripgrep"
|
|
22
22
|
},
|
|
23
23
|
"author": "Rob Lourens",
|
|
24
|
-
"license": "MIT"
|
|
25
|
-
"optionalDependencies": {
|
|
26
|
-
"@vscode/ripgrep-darwin-x64": "1.18.0",
|
|
27
|
-
"@vscode/ripgrep-darwin-arm64": "1.18.0",
|
|
28
|
-
"@vscode/ripgrep-win32-x64": "1.18.0",
|
|
29
|
-
"@vscode/ripgrep-win32-arm64": "1.18.0",
|
|
30
|
-
"@vscode/ripgrep-win32-ia32": "1.18.0",
|
|
31
|
-
"@vscode/ripgrep-linux-x64": "1.18.0",
|
|
32
|
-
"@vscode/ripgrep-linux-arm64": "1.18.0",
|
|
33
|
-
"@vscode/ripgrep-linux-arm": "1.18.0",
|
|
34
|
-
"@vscode/ripgrep-linux-ppc64": "1.18.0",
|
|
35
|
-
"@vscode/ripgrep-linux-riscv64": "1.18.0",
|
|
36
|
-
"@vscode/ripgrep-linux-s390x": "1.18.0",
|
|
37
|
-
"@vscode/ripgrep-linux-ia32": "1.18.0"
|
|
38
|
-
}
|
|
24
|
+
"license": "MIT"
|
|
39
25
|
}
|
|
@@ -29,28 +29,6 @@
|
|
|
29
29
|
"napi": 8
|
|
30
30
|
},
|
|
31
31
|
"funding": "https://liberapay.com/Koromix",
|
|
32
|
-
"optionalDependencies": {
|
|
33
|
-
"@koromix/koffi-linux-arm": "3.3.0",
|
|
34
|
-
"@koromix/koffi-linux-arm64": "3.3.0",
|
|
35
|
-
"@koromix/koffi-linux-ia32": "3.3.0",
|
|
36
|
-
"@koromix/koffi-linux-x64": "3.3.0",
|
|
37
|
-
"@koromix/koffi-linux-riscv64": "3.3.0",
|
|
38
|
-
"@koromix/koffi-freebsd-ia32": "3.3.0",
|
|
39
|
-
"@koromix/koffi-freebsd-x64": "3.3.0",
|
|
40
|
-
"@koromix/koffi-freebsd-arm64": "3.3.0",
|
|
41
|
-
"@koromix/koffi-openbsd-ia32": "3.3.0",
|
|
42
|
-
"@koromix/koffi-openbsd-x64": "3.3.0",
|
|
43
|
-
"@koromix/koffi-win32-ia32": "3.3.0",
|
|
44
|
-
"@koromix/koffi-win32-x64": "3.3.0",
|
|
45
|
-
"@koromix/koffi-win32-arm64": "3.3.0",
|
|
46
|
-
"@koromix/koffi-darwin-x64": "3.3.0",
|
|
47
|
-
"@koromix/koffi-darwin-arm64": "3.3.0",
|
|
48
|
-
"@koromix/koffi-linux-loong64": "3.3.0",
|
|
49
|
-
"@koromix/koffi-android-arm64": "3.3.0",
|
|
50
|
-
"@koromix/koffi-android-x64": "3.3.0",
|
|
51
|
-
"@koromix/koffi-linux-ppc64": "3.3.0",
|
|
52
|
-
"@koromix/koffi-openbsd-arm64": "3.3.0"
|
|
53
|
-
},
|
|
54
32
|
"type": "module",
|
|
55
33
|
"main": "./index.cjs",
|
|
56
34
|
"module": "./index.js",
|
|
@@ -27,14 +27,5 @@
|
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"node-addon-native-custom-loader": "0.1.6"
|
|
30
|
-
},
|
|
31
|
-
"optionalDependencies": {
|
|
32
|
-
"node-addon-require-builtin-darwin-arm64": "0.1.6",
|
|
33
|
-
"node-addon-require-builtin-darwin-x64": "0.1.6",
|
|
34
|
-
"node-addon-require-builtin-linux-arm64-gnu": "0.1.6",
|
|
35
|
-
"node-addon-require-builtin-linux-x64-gnu": "0.1.6",
|
|
36
|
-
"node-addon-require-builtin-win32-arm64-msvc": "0.1.6",
|
|
37
|
-
"node-addon-require-builtin-win32-x64-msvc": "0.1.6",
|
|
38
|
-
"node-addon-require-builtin-win32-ia32-msvc": "0.1.6"
|
|
39
30
|
}
|
|
40
31
|
}
|
|
@@ -143,33 +143,6 @@
|
|
|
143
143
|
"detect-libc": "^2.1.2",
|
|
144
144
|
"semver": "^7.8.5"
|
|
145
145
|
},
|
|
146
|
-
"optionalDependencies": {
|
|
147
|
-
"@img/sharp-darwin-arm64": "0.35.4",
|
|
148
|
-
"@img/sharp-darwin-x64": "0.35.4",
|
|
149
|
-
"@img/sharp-freebsd-wasm32": "0.35.4",
|
|
150
|
-
"@img/sharp-libvips-darwin-arm64": "1.3.3",
|
|
151
|
-
"@img/sharp-libvips-darwin-x64": "1.3.3",
|
|
152
|
-
"@img/sharp-libvips-linux-arm": "1.3.3",
|
|
153
|
-
"@img/sharp-libvips-linux-arm64": "1.3.3",
|
|
154
|
-
"@img/sharp-libvips-linux-ppc64": "1.3.3",
|
|
155
|
-
"@img/sharp-libvips-linux-riscv64": "1.3.3",
|
|
156
|
-
"@img/sharp-libvips-linux-s390x": "1.3.3",
|
|
157
|
-
"@img/sharp-libvips-linux-x64": "1.3.3",
|
|
158
|
-
"@img/sharp-libvips-linuxmusl-arm64": "1.3.3",
|
|
159
|
-
"@img/sharp-libvips-linuxmusl-x64": "1.3.3",
|
|
160
|
-
"@img/sharp-linux-arm": "0.35.4",
|
|
161
|
-
"@img/sharp-linux-arm64": "0.35.4",
|
|
162
|
-
"@img/sharp-linux-ppc64": "0.35.4",
|
|
163
|
-
"@img/sharp-linux-riscv64": "0.35.4",
|
|
164
|
-
"@img/sharp-linux-s390x": "0.35.4",
|
|
165
|
-
"@img/sharp-linux-x64": "0.35.4",
|
|
166
|
-
"@img/sharp-linuxmusl-arm64": "0.35.4",
|
|
167
|
-
"@img/sharp-linuxmusl-x64": "0.35.4",
|
|
168
|
-
"@img/sharp-webcontainers-wasm32": "0.35.4",
|
|
169
|
-
"@img/sharp-win32-arm64": "0.35.4",
|
|
170
|
-
"@img/sharp-win32-ia32": "0.35.4",
|
|
171
|
-
"@img/sharp-win32-x64": "0.35.4"
|
|
172
|
-
},
|
|
173
146
|
"peerDependenciesMeta": {
|
|
174
147
|
"@types/node": {
|
|
175
148
|
"optional": true
|
package/package.json
CHANGED