@cmmd-center/forge 0.9.14 → 0.9.15
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/dist/bin.cjs +21 -6
- package/dist/bin.mjs +45 -30
- package/dist/{open-FIgTDosf.mjs → open-D8mGyWmt.mjs} +3 -3
- package/package.json +1 -1
package/dist/bin.cjs
CHANGED
|
@@ -65123,7 +65123,7 @@ function normalizeNumberish(value) {
|
|
|
65123
65123
|
}
|
|
65124
65124
|
//#endregion
|
|
65125
65125
|
//#region package.json
|
|
65126
|
-
var version$1 = "0.9.
|
|
65126
|
+
var version$1 = "0.9.15";
|
|
65127
65127
|
//#endregion
|
|
65128
65128
|
//#region src/sentry.ts
|
|
65129
65129
|
const SERVER_APP_NAME = "forge-server";
|
|
@@ -66945,13 +66945,13 @@ function validateCommandBootstrapPayload(payload) {
|
|
|
66945
66945
|
});
|
|
66946
66946
|
const payloadIdentity = normalizeCmmdUserIdentity(payload.user);
|
|
66947
66947
|
if (payloadIdentity) {
|
|
66948
|
-
const cmmdIdentity = payloadIdentity.avatarUrl ? payloadIdentity : mergeCmmdUserIdentity(payloadIdentity, yield* fetchOptionalCmmdIdentityForAccessToken(payload
|
|
66948
|
+
const cmmdIdentity = payloadIdentity.avatarUrl ? payloadIdentity : mergeCmmdUserIdentity(payloadIdentity, yield* fetchOptionalCmmdIdentityForAccessToken(cmmdUserCredential(payload)));
|
|
66949
66949
|
return {
|
|
66950
66950
|
subjectUserId: cmmdIdentity.id,
|
|
66951
66951
|
cmmdIdentity
|
|
66952
66952
|
};
|
|
66953
66953
|
}
|
|
66954
|
-
const tokenIdentity = yield* fetchCmmdIdentityForAccessToken(payload
|
|
66954
|
+
const tokenIdentity = yield* fetchCmmdIdentityForAccessToken(cmmdUserCredential(payload));
|
|
66955
66955
|
if (tokenIdentity) return {
|
|
66956
66956
|
subjectUserId: tokenIdentity.id,
|
|
66957
66957
|
cmmdIdentity: tokenIdentity
|
|
@@ -67044,6 +67044,23 @@ function isCmmdJwtToken(token) {
|
|
|
67044
67044
|
return token?.startsWith("eyJ") ?? false;
|
|
67045
67045
|
}
|
|
67046
67046
|
/**
|
|
67047
|
+
* The credential CMMD's userinfo accepts.
|
|
67048
|
+
*
|
|
67049
|
+
* Since CMMD's OAuth update, `access_token` is a JWT and the personal access
|
|
67050
|
+
* token arrives separately as `mcp_token`. userinfo authenticates the PAT and
|
|
67051
|
+
* rejects the JWT with `INVALID_OR_NON_USER_TOKEN`, so presenting the JWT
|
|
67052
|
+
* resolves no identity: the bootstrap then finds no subject and answers 401,
|
|
67053
|
+
* even though the sign-in itself succeeded and the caller did nothing wrong.
|
|
67054
|
+
*
|
|
67055
|
+
* `resolveCmmdTokenBundleCredentials` already draws this distinction for the
|
|
67056
|
+
* owner lanes. This is the same rule for the bootstrap lane, which had only ever
|
|
67057
|
+
* seen the pre-update shape where `access_token` was itself the PAT.
|
|
67058
|
+
*/
|
|
67059
|
+
function cmmdUserCredential(payload) {
|
|
67060
|
+
const pat = payload.mcpToken?.trim();
|
|
67061
|
+
return isCmmdJwtToken(payload.accessToken) && pat ? pat : payload.accessToken;
|
|
67062
|
+
}
|
|
67063
|
+
/**
|
|
67047
67064
|
* Read one CMMD token-exchange response into the credential set Forge stores.
|
|
67048
67065
|
*
|
|
67049
67066
|
* Both owner lanes redeem the same `cmmd-forge-web` authorization code — the
|
|
@@ -92830,7 +92847,7 @@ function hasValidRuntimeIdentity(value) {
|
|
|
92830
92847
|
}
|
|
92831
92848
|
function decodeRuntime$1(value) {
|
|
92832
92849
|
if (!isRecord$16(value) || !hasValidRuntimeIdentity(value)) return null;
|
|
92833
|
-
if (!nullableString(value.endpointUrl) || value.endpointUrl !== null && !URL.canParse(value.endpointUrl) || !nullableInteger(value.deviceId) || !
|
|
92850
|
+
if (!nullableString(value.endpointUrl) || value.endpointUrl !== null && !URL.canParse(value.endpointUrl) || !nullableInteger(value.deviceId) || !nullableString(value.workspaceRoot) || !nullableString(value.githubRepoFullName) || !(value.lastSeenAt === null || isIsoDateTime(value.lastSeenAt)) || !(value.metadata === null || isRecord$16(value.metadata))) return null;
|
|
92834
92851
|
return value;
|
|
92835
92852
|
}
|
|
92836
92853
|
function decodeProject(value) {
|
|
@@ -93141,8 +93158,6 @@ function replicaRuntimeMatches(left, right) {
|
|
|
93141
93158
|
[left.status, right.status],
|
|
93142
93159
|
[left.endpointUrl, right.endpointUrl],
|
|
93143
93160
|
[left.deviceId, right.deviceId],
|
|
93144
|
-
[left.projectId, right.projectId],
|
|
93145
|
-
[left.projectName, right.projectName],
|
|
93146
93161
|
[left.workspaceRoot, right.workspaceRoot],
|
|
93147
93162
|
[left.githubRepoFullName, right.githubRepoFullName],
|
|
93148
93163
|
[left.lastSeenAt, right.lastSeenAt]
|
package/dist/bin.mjs
CHANGED
|
@@ -22,7 +22,7 @@ import { createCipheriv, createDecipheriv, createHash, createHmac, createPublicK
|
|
|
22
22
|
import * as FS$1 from "node:fs";
|
|
23
23
|
import fs, { accessSync, chmodSync, constants, createReadStream, existsSync, mkdirSync, mkdtempSync, promises, readFile, readFileSync, readdir, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
24
24
|
import * as NodeOS from "node:os";
|
|
25
|
-
import
|
|
25
|
+
import $U, { homedir, networkInterfaces, tmpdir } from "node:os";
|
|
26
26
|
import * as Path$1 from "node:path";
|
|
27
27
|
import path, { basename, delimiter, dirname, extname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
|
|
28
28
|
import { pathToFileURL } from "node:url";
|
|
@@ -49482,7 +49482,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
|
49482
49482
|
const min = forceColor || 0;
|
|
49483
49483
|
if (env.TERM === "dumb") return min;
|
|
49484
49484
|
if (process$1.platform === "win32") {
|
|
49485
|
-
const osRelease =
|
|
49485
|
+
const osRelease = $U.release().split(".");
|
|
49486
49486
|
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
49487
49487
|
return 1;
|
|
49488
49488
|
}
|
|
@@ -51925,7 +51925,7 @@ var require_ProcessDetector = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
51925
51925
|
exports.processDetector = void 0;
|
|
51926
51926
|
const api_1 = (init_esm$1(), __toCommonJS(esm_exports$1));
|
|
51927
51927
|
const semconv_1 = require_semconv$1();
|
|
51928
|
-
const os$
|
|
51928
|
+
const os$3 = __require("os");
|
|
51929
51929
|
/**
|
|
51930
51930
|
* ProcessDetector will be used to detect the resources related current process running
|
|
51931
51931
|
* and being instrumented from the NodeJS Process module.
|
|
@@ -51947,7 +51947,7 @@ var require_ProcessDetector = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
51947
51947
|
};
|
|
51948
51948
|
if (process.argv.length > 1) attributes[semconv_1.ATTR_PROCESS_COMMAND] = process.argv[1];
|
|
51949
51949
|
try {
|
|
51950
|
-
const userInfo = os$
|
|
51950
|
+
const userInfo = os$3.userInfo();
|
|
51951
51951
|
attributes[semconv_1.ATTR_PROCESS_OWNER] = userInfo.username;
|
|
51952
51952
|
} catch (e) {
|
|
51953
51953
|
api_1.diag.debug(`error obtaining process owner: ${e}`);
|
|
@@ -64870,7 +64870,7 @@ function normalizeNumberish(value) {
|
|
|
64870
64870
|
}
|
|
64871
64871
|
//#endregion
|
|
64872
64872
|
//#region package.json
|
|
64873
|
-
var version$1 = "0.9.
|
|
64873
|
+
var version$1 = "0.9.15";
|
|
64874
64874
|
//#endregion
|
|
64875
64875
|
//#region src/sentry.ts
|
|
64876
64876
|
const SERVER_APP_NAME = "forge-server";
|
|
@@ -66692,13 +66692,13 @@ function validateCommandBootstrapPayload(payload) {
|
|
|
66692
66692
|
});
|
|
66693
66693
|
const payloadIdentity = normalizeCmmdUserIdentity(payload.user);
|
|
66694
66694
|
if (payloadIdentity) {
|
|
66695
|
-
const cmmdIdentity = payloadIdentity.avatarUrl ? payloadIdentity : mergeCmmdUserIdentity(payloadIdentity, yield* fetchOptionalCmmdIdentityForAccessToken(payload
|
|
66695
|
+
const cmmdIdentity = payloadIdentity.avatarUrl ? payloadIdentity : mergeCmmdUserIdentity(payloadIdentity, yield* fetchOptionalCmmdIdentityForAccessToken(cmmdUserCredential(payload)));
|
|
66696
66696
|
return {
|
|
66697
66697
|
subjectUserId: cmmdIdentity.id,
|
|
66698
66698
|
cmmdIdentity
|
|
66699
66699
|
};
|
|
66700
66700
|
}
|
|
66701
|
-
const tokenIdentity = yield* fetchCmmdIdentityForAccessToken(payload
|
|
66701
|
+
const tokenIdentity = yield* fetchCmmdIdentityForAccessToken(cmmdUserCredential(payload));
|
|
66702
66702
|
if (tokenIdentity) return {
|
|
66703
66703
|
subjectUserId: tokenIdentity.id,
|
|
66704
66704
|
cmmdIdentity: tokenIdentity
|
|
@@ -66791,6 +66791,23 @@ function isCmmdJwtToken(token) {
|
|
|
66791
66791
|
return token?.startsWith("eyJ") ?? false;
|
|
66792
66792
|
}
|
|
66793
66793
|
/**
|
|
66794
|
+
* The credential CMMD's userinfo accepts.
|
|
66795
|
+
*
|
|
66796
|
+
* Since CMMD's OAuth update, `access_token` is a JWT and the personal access
|
|
66797
|
+
* token arrives separately as `mcp_token`. userinfo authenticates the PAT and
|
|
66798
|
+
* rejects the JWT with `INVALID_OR_NON_USER_TOKEN`, so presenting the JWT
|
|
66799
|
+
* resolves no identity: the bootstrap then finds no subject and answers 401,
|
|
66800
|
+
* even though the sign-in itself succeeded and the caller did nothing wrong.
|
|
66801
|
+
*
|
|
66802
|
+
* `resolveCmmdTokenBundleCredentials` already draws this distinction for the
|
|
66803
|
+
* owner lanes. This is the same rule for the bootstrap lane, which had only ever
|
|
66804
|
+
* seen the pre-update shape where `access_token` was itself the PAT.
|
|
66805
|
+
*/
|
|
66806
|
+
function cmmdUserCredential(payload) {
|
|
66807
|
+
const pat = payload.mcpToken?.trim();
|
|
66808
|
+
return isCmmdJwtToken(payload.accessToken) && pat ? pat : payload.accessToken;
|
|
66809
|
+
}
|
|
66810
|
+
/**
|
|
66794
66811
|
* Read one CMMD token-exchange response into the credential set Forge stores.
|
|
66795
66812
|
*
|
|
66796
66813
|
* Both owner lanes redeem the same `cmmd-forge-web` authorization code — the
|
|
@@ -73483,7 +73500,7 @@ var require_node_gyp_build = /* @__PURE__ */ __commonJSMin(((exports, module) =>
|
|
|
73483
73500
|
var fs$6 = __require("fs");
|
|
73484
73501
|
var path$5 = __require("path");
|
|
73485
73502
|
var url$1 = __require("url");
|
|
73486
|
-
var os$
|
|
73503
|
+
var os$2 = __require("os");
|
|
73487
73504
|
var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : __require;
|
|
73488
73505
|
var vars = process.config && process.config.variables || {};
|
|
73489
73506
|
var prebuildsOnly = !!process.env.PREBUILDS_ONLY;
|
|
@@ -73491,8 +73508,8 @@ var require_node_gyp_build = /* @__PURE__ */ __commonJSMin(((exports, module) =>
|
|
|
73491
73508
|
var abi = versions.modules;
|
|
73492
73509
|
if (versions.deno || process.isBun) abi = "unsupported";
|
|
73493
73510
|
var runtime = isElectron() ? "electron" : isNwjs() ? "node-webkit" : "node";
|
|
73494
|
-
var arch = process.env.npm_config_arch || os$
|
|
73495
|
-
var platform = process.env.npm_config_platform || os$
|
|
73511
|
+
var arch = process.env.npm_config_arch || os$2.arch();
|
|
73512
|
+
var platform = process.env.npm_config_platform || os$2.platform();
|
|
73496
73513
|
var libc = process.env.LIBC || (isMusl(platform) ? "musl" : "glibc");
|
|
73497
73514
|
var armv = process.env.ARM_VERSION || (arch === "arm64" ? "8" : vars.arm_version) || "";
|
|
73498
73515
|
var uv = (versions.uv || "").split(".")[0];
|
|
@@ -91150,7 +91167,7 @@ const launchDetached = (launch) => gen(function* () {
|
|
|
91150
91167
|
});
|
|
91151
91168
|
const OpenLive = effect(Open, gen(function* () {
|
|
91152
91169
|
const open = yield* tryPromise({
|
|
91153
|
-
try: () => import("./open-
|
|
91170
|
+
try: () => import("./open-D8mGyWmt.mjs"),
|
|
91154
91171
|
catch: (cause) => new OpenError$1({
|
|
91155
91172
|
message: "failed to load browser opener",
|
|
91156
91173
|
cause
|
|
@@ -92509,7 +92526,7 @@ function hasValidRuntimeIdentity(value) {
|
|
|
92509
92526
|
}
|
|
92510
92527
|
function decodeRuntime$1(value) {
|
|
92511
92528
|
if (!isRecord$16(value) || !hasValidRuntimeIdentity(value)) return null;
|
|
92512
|
-
if (!nullableString(value.endpointUrl) || value.endpointUrl !== null && !URL.canParse(value.endpointUrl) || !nullableInteger(value.deviceId) || !
|
|
92529
|
+
if (!nullableString(value.endpointUrl) || value.endpointUrl !== null && !URL.canParse(value.endpointUrl) || !nullableInteger(value.deviceId) || !nullableString(value.workspaceRoot) || !nullableString(value.githubRepoFullName) || !(value.lastSeenAt === null || isIsoDateTime(value.lastSeenAt)) || !(value.metadata === null || isRecord$16(value.metadata))) return null;
|
|
92513
92530
|
return value;
|
|
92514
92531
|
}
|
|
92515
92532
|
function decodeProject(value) {
|
|
@@ -92820,8 +92837,6 @@ function replicaRuntimeMatches(left, right) {
|
|
|
92820
92837
|
[left.status, right.status],
|
|
92821
92838
|
[left.endpointUrl, right.endpointUrl],
|
|
92822
92839
|
[left.deviceId, right.deviceId],
|
|
92823
|
-
[left.projectId, right.projectId],
|
|
92824
|
-
[left.projectName, right.projectName],
|
|
92825
92840
|
[left.workspaceRoot, right.workspaceRoot],
|
|
92826
92841
|
[left.githubRepoFullName, right.githubRepoFullName],
|
|
92827
92842
|
[left.lastSeenAt, right.lastSeenAt]
|
|
@@ -184358,7 +184373,7 @@ var Vce = {
|
|
|
184358
184373
|
function Ve() {
|
|
184359
184374
|
return Vce;
|
|
184360
184375
|
}
|
|
184361
|
-
var Us =
|
|
184376
|
+
var Us = $U.homedir(), lk = $U.tmpdir(), { env: Vc } = process$1, Yce = (e) => {
|
|
184362
184377
|
let t = path.join(Us, "Library");
|
|
184363
184378
|
return {
|
|
184364
184379
|
data: path.join(t, "Application Support", e),
|
|
@@ -194558,12 +194573,12 @@ function qZ(e, t) {
|
|
|
194558
194573
|
}
|
|
194559
194574
|
return n;
|
|
194560
194575
|
}
|
|
194561
|
-
var os$
|
|
194576
|
+
var os$1 = "https://code.claude.com/docs/en", kKe = [
|
|
194562
194577
|
{
|
|
194563
194578
|
matches: (e) => e.path === "permissions.defaultMode" && e.code === "invalid_value",
|
|
194564
194579
|
tip: {
|
|
194565
194580
|
suggestion: "Valid modes: \"acceptEdits\" (ask before file changes), \"plan\" (analysis only), \"bypassPermissions\" (auto-accept all), or \"default\" (standard behavior)",
|
|
194566
|
-
docLink: `${os$
|
|
194581
|
+
docLink: `${os$1}/iam#permission-modes`
|
|
194567
194582
|
}
|
|
194568
194583
|
},
|
|
194569
194584
|
{
|
|
@@ -194578,7 +194593,7 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
194578
194593
|
matches: (e) => e.path.startsWith("env.") && e.code === "invalid_type",
|
|
194579
194594
|
tip: {
|
|
194580
194595
|
suggestion: "Environment variables must be strings. Wrap numbers and booleans in quotes. Example: \"DEBUG\": \"true\", \"PORT\": \"3000\"",
|
|
194581
|
-
docLink: `${os$
|
|
194596
|
+
docLink: `${os$1}/settings#environment-variables`
|
|
194582
194597
|
}
|
|
194583
194598
|
},
|
|
194584
194599
|
{
|
|
@@ -194589,14 +194604,14 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
194589
194604
|
matches: (e) => e.path.startsWith("hooks.") && e.code === "invalid_key",
|
|
194590
194605
|
tip: {
|
|
194591
194606
|
suggestion: "Not a recognized hook event. Common events: PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, SessionEnd, Stop. Check spelling and capitalization.",
|
|
194592
|
-
docLink: `${os$
|
|
194607
|
+
docLink: `${os$1}/hooks`
|
|
194593
194608
|
}
|
|
194594
194609
|
},
|
|
194595
194610
|
{
|
|
194596
194611
|
matches: (e) => /\.hooks\.\d+\.command$/.test(e.path) && e.code === "invalid_type" && e.received === "undefined",
|
|
194597
194612
|
tip: {
|
|
194598
194613
|
suggestion: "Command hooks require `command`. For exec form (no shell), set `command` to the executable and `args` to its arguments: {\"type\": \"command\", \"command\": \"echo\", \"args\": [\"hi\"]}. For shell form, set `command` to the full shell string: {\"type\": \"command\", \"command\": \"echo hi\"}.",
|
|
194599
|
-
docLink: `${os$
|
|
194614
|
+
docLink: `${os$1}/hooks#exec-form-and-shell-form`
|
|
194600
194615
|
}
|
|
194601
194616
|
},
|
|
194602
194617
|
{
|
|
@@ -194611,7 +194626,7 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
194611
194626
|
matches: (e) => e.code === "unrecognized_keys",
|
|
194612
194627
|
tip: {
|
|
194613
194628
|
suggestion: "Check for typos or refer to the documentation for valid fields",
|
|
194614
|
-
docLink: `${os$
|
|
194629
|
+
docLink: `${os$1}/settings`
|
|
194615
194630
|
}
|
|
194616
194631
|
},
|
|
194617
194632
|
{
|
|
@@ -194626,13 +194641,13 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
194626
194641
|
matches: (e) => e.path === "permissions.additionalDirectories" && e.code === "invalid_type",
|
|
194627
194642
|
tip: {
|
|
194628
194643
|
suggestion: "Must be an array of directory paths. Example: [\"~/projects\", \"/tmp/workspace\"]. You can also use --add-dir flag or /add-dir command",
|
|
194629
|
-
docLink: `${os$
|
|
194644
|
+
docLink: `${os$1}/iam#working-directories`
|
|
194630
194645
|
}
|
|
194631
194646
|
}
|
|
194632
194647
|
], AKe = {
|
|
194633
|
-
permissions: `${os$
|
|
194634
|
-
env: `${os$
|
|
194635
|
-
hooks: `${os$
|
|
194648
|
+
permissions: `${os$1}/iam#configuring-permissions`,
|
|
194649
|
+
env: `${os$1}/settings#environment-variables`,
|
|
194650
|
+
hooks: `${os$1}/hooks`
|
|
194636
194651
|
};
|
|
194637
194652
|
function GZ(e) {
|
|
194638
194653
|
let t = kKe.find((r) => r.matches(e));
|
|
@@ -258885,7 +258900,7 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
|
|
|
258885
258900
|
var dgram = __require("dgram");
|
|
258886
258901
|
var thunky = require_thunky();
|
|
258887
258902
|
var events = __require("events");
|
|
258888
|
-
var os
|
|
258903
|
+
var os = __require("os");
|
|
258889
258904
|
var noop = function() {};
|
|
258890
258905
|
module.exports = function(opts) {
|
|
258891
258906
|
if (!opts) opts = {};
|
|
@@ -259016,14 +259031,14 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
|
|
|
259016
259031
|
return that;
|
|
259017
259032
|
};
|
|
259018
259033
|
function defaultInterface() {
|
|
259019
|
-
var networks = os
|
|
259034
|
+
var networks = os.networkInterfaces();
|
|
259020
259035
|
var names = Object.keys(networks);
|
|
259021
259036
|
for (var i = 0; i < names.length; i++) {
|
|
259022
259037
|
var net = networks[names[i]];
|
|
259023
259038
|
for (var j = 0; j < net.length; j++) {
|
|
259024
259039
|
var iface = net[j];
|
|
259025
259040
|
if (isIPv4(iface.family) && !iface.internal) {
|
|
259026
|
-
if (os
|
|
259041
|
+
if (os.platform() === "darwin" && names[i] === "en0") return iface.address;
|
|
259027
259042
|
return "0.0.0.0";
|
|
259028
259043
|
}
|
|
259029
259044
|
}
|
|
@@ -259031,7 +259046,7 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
|
|
|
259031
259046
|
return "127.0.0.1";
|
|
259032
259047
|
}
|
|
259033
259048
|
function allInterfaces() {
|
|
259034
|
-
var networks = os
|
|
259049
|
+
var networks = os.networkInterfaces();
|
|
259035
259050
|
var names = Object.keys(networks);
|
|
259036
259051
|
var res = [];
|
|
259037
259052
|
for (var i = 0; i < names.length; i++) {
|
|
@@ -310411,7 +310426,7 @@ const connectLoginCommand = make$32("login", {
|
|
|
310411
310426
|
})).json();
|
|
310412
310427
|
},
|
|
310413
310428
|
openBrowser: async (url) => {
|
|
310414
|
-
const open = (await import("./open-
|
|
310429
|
+
const open = (await import("./open-D8mGyWmt.mjs")).default;
|
|
310415
310430
|
await open(url);
|
|
310416
310431
|
return true;
|
|
310417
310432
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import childProcess, { execFile } from "node:child_process";
|
|
4
4
|
import fs from "node:fs";
|
|
5
|
-
import
|
|
5
|
+
import $U from "node:os";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import process from "node:process";
|
|
@@ -49,7 +49,7 @@ function isInsideContainer() {
|
|
|
49
49
|
//#region ../../node_modules/.bun/is-wsl@3.1.1/node_modules/is-wsl/index.js
|
|
50
50
|
const isWsl = () => {
|
|
51
51
|
if (process.platform !== "linux") return false;
|
|
52
|
-
if (
|
|
52
|
+
if ($U.release().toLowerCase().includes("microsoft")) {
|
|
53
53
|
if (isInsideContainer()) return false;
|
|
54
54
|
return true;
|
|
55
55
|
}
|
|
@@ -589,4 +589,4 @@ defineLazyProperty(apps, "safari", () => detectPlatformBinary({ darwin: "Safari"
|
|
|
589
589
|
//#endregion
|
|
590
590
|
export { apps, open as default, openApp };
|
|
591
591
|
|
|
592
|
-
//# sourceMappingURL=open-
|
|
592
|
+
//# sourceMappingURL=open-D8mGyWmt.mjs.map
|