@node9/proxy 1.49.0 → 1.51.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/dist/cli.js CHANGED
@@ -4217,19 +4217,54 @@ var init_shields = __esm({
4217
4217
  });
4218
4218
 
4219
4219
  // src/config/managed.ts
4220
- function modeRank(mode) {
4221
- return MODE_ORDER.indexOf(mode);
4220
+ function rankIn(order, value) {
4221
+ return order.indexOf(value);
4222
4222
  }
4223
- function resolveManagedMode(local, cloud, locked) {
4224
- if (modeRank(cloud) === -1) return local;
4223
+ function resolveByOrder(order, local, cloud, locked) {
4224
+ if (rankIn(order, cloud) === -1) return local;
4225
4225
  if (locked) return cloud;
4226
- return modeRank(local) > modeRank(cloud) ? local : cloud;
4226
+ return rankIn(order, local) > rankIn(order, cloud) ? local : cloud;
4227
+ }
4228
+ function resolveManagedMode(local, cloud, locked) {
4229
+ return resolveByOrder(MODE_ORDER, local, cloud, locked);
4230
+ }
4231
+ function applyManagedEgress(local, managed, locked) {
4232
+ const next = { ...local };
4233
+ if (typeof managed.enabled === "boolean") {
4234
+ next.enabled = locked.includes("egressEnabled") ? managed.enabled : local.enabled || managed.enabled;
4235
+ }
4236
+ if (typeof managed.mode === "string") {
4237
+ next.mode = resolveByOrder(
4238
+ EGRESS_MODE_ORDER,
4239
+ local.mode,
4240
+ managed.mode,
4241
+ locked.includes("egressMode")
4242
+ );
4243
+ }
4244
+ return next;
4245
+ }
4246
+ function applyManagedDlp(local, managed, locked) {
4247
+ const next = { ...local };
4248
+ if (typeof managed.enabled === "boolean") {
4249
+ next.enabled = locked.includes("dlpEnabled") ? managed.enabled : local.enabled || managed.enabled;
4250
+ }
4251
+ if (typeof managed.pii === "string") {
4252
+ next.pii = resolveByOrder(
4253
+ DLP_PII_ORDER,
4254
+ local.pii ?? "off",
4255
+ managed.pii,
4256
+ locked.includes("dlpPii")
4257
+ );
4258
+ }
4259
+ return next;
4227
4260
  }
4228
- var MODE_ORDER;
4261
+ var MODE_ORDER, EGRESS_MODE_ORDER, DLP_PII_ORDER;
4229
4262
  var init_managed = __esm({
4230
4263
  "src/config/managed.ts"() {
4231
4264
  "use strict";
4232
4265
  MODE_ORDER = ["observe", "audit", "standard", "strict"];
4266
+ EGRESS_MODE_ORDER = ["off", "review", "block"];
4267
+ DLP_PII_ORDER = ["off", "block"];
4233
4268
  }
4234
4269
  });
4235
4270
 
@@ -4445,9 +4480,33 @@ function getConfig(cwd) {
4445
4480
  }
4446
4481
  if (raw.managedConfig && typeof raw.managedConfig === "object") {
4447
4482
  const mc = raw.managedConfig;
4483
+ const locked = Array.isArray(mc.locked) ? mc.locked.filter((f) => typeof f === "string") : [];
4448
4484
  if (typeof mc.mode === "string") {
4449
- const locked = Array.isArray(mc.locked) && mc.locked.includes("mode");
4450
- mergedSettings.mode = resolveManagedMode(mergedSettings.mode, mc.mode, locked);
4485
+ mergedSettings.mode = resolveManagedMode(
4486
+ mergedSettings.mode,
4487
+ mc.mode,
4488
+ locked.includes("mode")
4489
+ );
4490
+ }
4491
+ if (mc.egress && typeof mc.egress === "object") {
4492
+ mergedPolicy.egress = applyManagedEgress(
4493
+ mergedPolicy.egress,
4494
+ {
4495
+ enabled: typeof mc.egress.enabled === "boolean" ? mc.egress.enabled : void 0,
4496
+ mode: typeof mc.egress.mode === "string" ? mc.egress.mode : void 0
4497
+ },
4498
+ locked
4499
+ );
4500
+ }
4501
+ if (mc.dlp && typeof mc.dlp === "object") {
4502
+ mergedPolicy.dlp = applyManagedDlp(
4503
+ mergedPolicy.dlp,
4504
+ {
4505
+ enabled: typeof mc.dlp.enabled === "boolean" ? mc.dlp.enabled : void 0,
4506
+ pii: typeof mc.dlp.pii === "string" ? mc.dlp.pii : void 0
4507
+ },
4508
+ locked
4509
+ );
4451
4510
  }
4452
4511
  }
4453
4512
  if (raw.panicMode === true) {
@@ -16922,7 +16981,19 @@ function extractManagedConfig(body) {
16922
16981
  locked: Array.isArray(mc.locked) ? mc.locked.filter((f) => typeof f === "string") : []
16923
16982
  };
16924
16983
  if (typeof mc.mode === "string") out.mode = mc.mode;
16925
- return out.mode !== void 0 ? out : void 0;
16984
+ if (mc.egress && typeof mc.egress === "object") {
16985
+ const e = {};
16986
+ if (typeof mc.egress.enabled === "boolean") e.enabled = mc.egress.enabled;
16987
+ if (typeof mc.egress.mode === "string") e.mode = mc.egress.mode;
16988
+ if (e.enabled !== void 0 || e.mode !== void 0) out.egress = e;
16989
+ }
16990
+ if (mc.dlp && typeof mc.dlp === "object") {
16991
+ const d = {};
16992
+ if (typeof mc.dlp.enabled === "boolean") d.enabled = mc.dlp.enabled;
16993
+ if (typeof mc.dlp.pii === "string") d.pii = mc.dlp.pii;
16994
+ if (d.enabled !== void 0 || d.pii !== void 0) out.dlp = d;
16995
+ }
16996
+ return out.mode !== void 0 || out.egress !== void 0 || out.dlp !== void 0 ? out : void 0;
16926
16997
  }
16927
16998
  function writeCache2(cache) {
16928
16999
  const dir = import_path31.default.dirname(rulesCacheFile());
package/dist/cli.mjs CHANGED
@@ -4195,19 +4195,54 @@ var init_shields = __esm({
4195
4195
  });
4196
4196
 
4197
4197
  // src/config/managed.ts
4198
- function modeRank(mode) {
4199
- return MODE_ORDER.indexOf(mode);
4198
+ function rankIn(order, value) {
4199
+ return order.indexOf(value);
4200
4200
  }
4201
- function resolveManagedMode(local, cloud, locked) {
4202
- if (modeRank(cloud) === -1) return local;
4201
+ function resolveByOrder(order, local, cloud, locked) {
4202
+ if (rankIn(order, cloud) === -1) return local;
4203
4203
  if (locked) return cloud;
4204
- return modeRank(local) > modeRank(cloud) ? local : cloud;
4204
+ return rankIn(order, local) > rankIn(order, cloud) ? local : cloud;
4205
+ }
4206
+ function resolveManagedMode(local, cloud, locked) {
4207
+ return resolveByOrder(MODE_ORDER, local, cloud, locked);
4208
+ }
4209
+ function applyManagedEgress(local, managed, locked) {
4210
+ const next = { ...local };
4211
+ if (typeof managed.enabled === "boolean") {
4212
+ next.enabled = locked.includes("egressEnabled") ? managed.enabled : local.enabled || managed.enabled;
4213
+ }
4214
+ if (typeof managed.mode === "string") {
4215
+ next.mode = resolveByOrder(
4216
+ EGRESS_MODE_ORDER,
4217
+ local.mode,
4218
+ managed.mode,
4219
+ locked.includes("egressMode")
4220
+ );
4221
+ }
4222
+ return next;
4223
+ }
4224
+ function applyManagedDlp(local, managed, locked) {
4225
+ const next = { ...local };
4226
+ if (typeof managed.enabled === "boolean") {
4227
+ next.enabled = locked.includes("dlpEnabled") ? managed.enabled : local.enabled || managed.enabled;
4228
+ }
4229
+ if (typeof managed.pii === "string") {
4230
+ next.pii = resolveByOrder(
4231
+ DLP_PII_ORDER,
4232
+ local.pii ?? "off",
4233
+ managed.pii,
4234
+ locked.includes("dlpPii")
4235
+ );
4236
+ }
4237
+ return next;
4205
4238
  }
4206
- var MODE_ORDER;
4239
+ var MODE_ORDER, EGRESS_MODE_ORDER, DLP_PII_ORDER;
4207
4240
  var init_managed = __esm({
4208
4241
  "src/config/managed.ts"() {
4209
4242
  "use strict";
4210
4243
  MODE_ORDER = ["observe", "audit", "standard", "strict"];
4244
+ EGRESS_MODE_ORDER = ["off", "review", "block"];
4245
+ DLP_PII_ORDER = ["off", "block"];
4211
4246
  }
4212
4247
  });
4213
4248
 
@@ -4426,9 +4461,33 @@ function getConfig(cwd) {
4426
4461
  }
4427
4462
  if (raw.managedConfig && typeof raw.managedConfig === "object") {
4428
4463
  const mc = raw.managedConfig;
4464
+ const locked = Array.isArray(mc.locked) ? mc.locked.filter((f) => typeof f === "string") : [];
4429
4465
  if (typeof mc.mode === "string") {
4430
- const locked = Array.isArray(mc.locked) && mc.locked.includes("mode");
4431
- mergedSettings.mode = resolveManagedMode(mergedSettings.mode, mc.mode, locked);
4466
+ mergedSettings.mode = resolveManagedMode(
4467
+ mergedSettings.mode,
4468
+ mc.mode,
4469
+ locked.includes("mode")
4470
+ );
4471
+ }
4472
+ if (mc.egress && typeof mc.egress === "object") {
4473
+ mergedPolicy.egress = applyManagedEgress(
4474
+ mergedPolicy.egress,
4475
+ {
4476
+ enabled: typeof mc.egress.enabled === "boolean" ? mc.egress.enabled : void 0,
4477
+ mode: typeof mc.egress.mode === "string" ? mc.egress.mode : void 0
4478
+ },
4479
+ locked
4480
+ );
4481
+ }
4482
+ if (mc.dlp && typeof mc.dlp === "object") {
4483
+ mergedPolicy.dlp = applyManagedDlp(
4484
+ mergedPolicy.dlp,
4485
+ {
4486
+ enabled: typeof mc.dlp.enabled === "boolean" ? mc.dlp.enabled : void 0,
4487
+ pii: typeof mc.dlp.pii === "string" ? mc.dlp.pii : void 0
4488
+ },
4489
+ locked
4490
+ );
4432
4491
  }
4433
4492
  }
4434
4493
  if (raw.panicMode === true) {
@@ -16896,7 +16955,19 @@ function extractManagedConfig(body) {
16896
16955
  locked: Array.isArray(mc.locked) ? mc.locked.filter((f) => typeof f === "string") : []
16897
16956
  };
16898
16957
  if (typeof mc.mode === "string") out.mode = mc.mode;
16899
- return out.mode !== void 0 ? out : void 0;
16958
+ if (mc.egress && typeof mc.egress === "object") {
16959
+ const e = {};
16960
+ if (typeof mc.egress.enabled === "boolean") e.enabled = mc.egress.enabled;
16961
+ if (typeof mc.egress.mode === "string") e.mode = mc.egress.mode;
16962
+ if (e.enabled !== void 0 || e.mode !== void 0) out.egress = e;
16963
+ }
16964
+ if (mc.dlp && typeof mc.dlp === "object") {
16965
+ const d = {};
16966
+ if (typeof mc.dlp.enabled === "boolean") d.enabled = mc.dlp.enabled;
16967
+ if (typeof mc.dlp.pii === "string") d.pii = mc.dlp.pii;
16968
+ if (d.enabled !== void 0 || d.pii !== void 0) out.dlp = d;
16969
+ }
16970
+ return out.mode !== void 0 || out.egress !== void 0 || out.dlp !== void 0 ? out : void 0;
16900
16971
  }
16901
16972
  function writeCache2(cache) {
16902
16973
  const dir = path31.dirname(rulesCacheFile());
package/dist/index.js CHANGED
@@ -3503,13 +3503,48 @@ function readShieldOverrides() {
3503
3503
 
3504
3504
  // src/config/managed.ts
3505
3505
  var MODE_ORDER = ["observe", "audit", "standard", "strict"];
3506
- function modeRank(mode) {
3507
- return MODE_ORDER.indexOf(mode);
3506
+ var EGRESS_MODE_ORDER = ["off", "review", "block"];
3507
+ function rankIn(order, value) {
3508
+ return order.indexOf(value);
3508
3509
  }
3509
- function resolveManagedMode(local, cloud, locked) {
3510
- if (modeRank(cloud) === -1) return local;
3510
+ function resolveByOrder(order, local, cloud, locked) {
3511
+ if (rankIn(order, cloud) === -1) return local;
3511
3512
  if (locked) return cloud;
3512
- return modeRank(local) > modeRank(cloud) ? local : cloud;
3513
+ return rankIn(order, local) > rankIn(order, cloud) ? local : cloud;
3514
+ }
3515
+ function resolveManagedMode(local, cloud, locked) {
3516
+ return resolveByOrder(MODE_ORDER, local, cloud, locked);
3517
+ }
3518
+ function applyManagedEgress(local, managed, locked) {
3519
+ const next = { ...local };
3520
+ if (typeof managed.enabled === "boolean") {
3521
+ next.enabled = locked.includes("egressEnabled") ? managed.enabled : local.enabled || managed.enabled;
3522
+ }
3523
+ if (typeof managed.mode === "string") {
3524
+ next.mode = resolveByOrder(
3525
+ EGRESS_MODE_ORDER,
3526
+ local.mode,
3527
+ managed.mode,
3528
+ locked.includes("egressMode")
3529
+ );
3530
+ }
3531
+ return next;
3532
+ }
3533
+ var DLP_PII_ORDER = ["off", "block"];
3534
+ function applyManagedDlp(local, managed, locked) {
3535
+ const next = { ...local };
3536
+ if (typeof managed.enabled === "boolean") {
3537
+ next.enabled = locked.includes("dlpEnabled") ? managed.enabled : local.enabled || managed.enabled;
3538
+ }
3539
+ if (typeof managed.pii === "string") {
3540
+ next.pii = resolveByOrder(
3541
+ DLP_PII_ORDER,
3542
+ local.pii ?? "off",
3543
+ managed.pii,
3544
+ locked.includes("dlpPii")
3545
+ );
3546
+ }
3547
+ return next;
3513
3548
  }
3514
3549
 
3515
3550
  // src/config/index.ts
@@ -3971,9 +4006,33 @@ function getConfig(cwd) {
3971
4006
  }
3972
4007
  if (raw.managedConfig && typeof raw.managedConfig === "object") {
3973
4008
  const mc = raw.managedConfig;
4009
+ const locked = Array.isArray(mc.locked) ? mc.locked.filter((f) => typeof f === "string") : [];
3974
4010
  if (typeof mc.mode === "string") {
3975
- const locked = Array.isArray(mc.locked) && mc.locked.includes("mode");
3976
- mergedSettings.mode = resolveManagedMode(mergedSettings.mode, mc.mode, locked);
4011
+ mergedSettings.mode = resolveManagedMode(
4012
+ mergedSettings.mode,
4013
+ mc.mode,
4014
+ locked.includes("mode")
4015
+ );
4016
+ }
4017
+ if (mc.egress && typeof mc.egress === "object") {
4018
+ mergedPolicy.egress = applyManagedEgress(
4019
+ mergedPolicy.egress,
4020
+ {
4021
+ enabled: typeof mc.egress.enabled === "boolean" ? mc.egress.enabled : void 0,
4022
+ mode: typeof mc.egress.mode === "string" ? mc.egress.mode : void 0
4023
+ },
4024
+ locked
4025
+ );
4026
+ }
4027
+ if (mc.dlp && typeof mc.dlp === "object") {
4028
+ mergedPolicy.dlp = applyManagedDlp(
4029
+ mergedPolicy.dlp,
4030
+ {
4031
+ enabled: typeof mc.dlp.enabled === "boolean" ? mc.dlp.enabled : void 0,
4032
+ pii: typeof mc.dlp.pii === "string" ? mc.dlp.pii : void 0
4033
+ },
4034
+ locked
4035
+ );
3977
4036
  }
3978
4037
  }
3979
4038
  if (raw.panicMode === true) {
package/dist/index.mjs CHANGED
@@ -3473,13 +3473,48 @@ function readShieldOverrides() {
3473
3473
 
3474
3474
  // src/config/managed.ts
3475
3475
  var MODE_ORDER = ["observe", "audit", "standard", "strict"];
3476
- function modeRank(mode) {
3477
- return MODE_ORDER.indexOf(mode);
3476
+ var EGRESS_MODE_ORDER = ["off", "review", "block"];
3477
+ function rankIn(order, value) {
3478
+ return order.indexOf(value);
3478
3479
  }
3479
- function resolveManagedMode(local, cloud, locked) {
3480
- if (modeRank(cloud) === -1) return local;
3480
+ function resolveByOrder(order, local, cloud, locked) {
3481
+ if (rankIn(order, cloud) === -1) return local;
3481
3482
  if (locked) return cloud;
3482
- return modeRank(local) > modeRank(cloud) ? local : cloud;
3483
+ return rankIn(order, local) > rankIn(order, cloud) ? local : cloud;
3484
+ }
3485
+ function resolveManagedMode(local, cloud, locked) {
3486
+ return resolveByOrder(MODE_ORDER, local, cloud, locked);
3487
+ }
3488
+ function applyManagedEgress(local, managed, locked) {
3489
+ const next = { ...local };
3490
+ if (typeof managed.enabled === "boolean") {
3491
+ next.enabled = locked.includes("egressEnabled") ? managed.enabled : local.enabled || managed.enabled;
3492
+ }
3493
+ if (typeof managed.mode === "string") {
3494
+ next.mode = resolveByOrder(
3495
+ EGRESS_MODE_ORDER,
3496
+ local.mode,
3497
+ managed.mode,
3498
+ locked.includes("egressMode")
3499
+ );
3500
+ }
3501
+ return next;
3502
+ }
3503
+ var DLP_PII_ORDER = ["off", "block"];
3504
+ function applyManagedDlp(local, managed, locked) {
3505
+ const next = { ...local };
3506
+ if (typeof managed.enabled === "boolean") {
3507
+ next.enabled = locked.includes("dlpEnabled") ? managed.enabled : local.enabled || managed.enabled;
3508
+ }
3509
+ if (typeof managed.pii === "string") {
3510
+ next.pii = resolveByOrder(
3511
+ DLP_PII_ORDER,
3512
+ local.pii ?? "off",
3513
+ managed.pii,
3514
+ locked.includes("dlpPii")
3515
+ );
3516
+ }
3517
+ return next;
3483
3518
  }
3484
3519
 
3485
3520
  // src/config/index.ts
@@ -3941,9 +3976,33 @@ function getConfig(cwd) {
3941
3976
  }
3942
3977
  if (raw.managedConfig && typeof raw.managedConfig === "object") {
3943
3978
  const mc = raw.managedConfig;
3979
+ const locked = Array.isArray(mc.locked) ? mc.locked.filter((f) => typeof f === "string") : [];
3944
3980
  if (typeof mc.mode === "string") {
3945
- const locked = Array.isArray(mc.locked) && mc.locked.includes("mode");
3946
- mergedSettings.mode = resolveManagedMode(mergedSettings.mode, mc.mode, locked);
3981
+ mergedSettings.mode = resolveManagedMode(
3982
+ mergedSettings.mode,
3983
+ mc.mode,
3984
+ locked.includes("mode")
3985
+ );
3986
+ }
3987
+ if (mc.egress && typeof mc.egress === "object") {
3988
+ mergedPolicy.egress = applyManagedEgress(
3989
+ mergedPolicy.egress,
3990
+ {
3991
+ enabled: typeof mc.egress.enabled === "boolean" ? mc.egress.enabled : void 0,
3992
+ mode: typeof mc.egress.mode === "string" ? mc.egress.mode : void 0
3993
+ },
3994
+ locked
3995
+ );
3996
+ }
3997
+ if (mc.dlp && typeof mc.dlp === "object") {
3998
+ mergedPolicy.dlp = applyManagedDlp(
3999
+ mergedPolicy.dlp,
4000
+ {
4001
+ enabled: typeof mc.dlp.enabled === "boolean" ? mc.dlp.enabled : void 0,
4002
+ pii: typeof mc.dlp.pii === "string" ? mc.dlp.pii : void 0
4003
+ },
4004
+ locked
4005
+ );
3947
4006
  }
3948
4007
  }
3949
4008
  if (raw.panicMode === true) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node9/proxy",
3
- "version": "1.49.0",
3
+ "version": "1.51.0",
4
4
  "description": "The Sudo Command for AI Agents. Execution Security for Claude Code, Codex, Gemini, Cursor, Opencode, Pi, and any MCP server.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",