@swmansion/argent 0.16.1 → 0.16.2-next.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
@@ -81,6 +81,7 @@ Commands:
81
81
  enable Enable a feature flag (global by default, --scope project for project)
82
82
  disable Disable a feature flag (global by default, --scope project for project)
83
83
  flags Show current feature-flag state
84
+ config Manage configuration (list / get / set / unset, project & global)
84
85
  telemetry Manage opt-out telemetry (status / enable / disable)
85
86
 
86
87
  Options:
@@ -146,6 +147,8 @@ async function main() {
146
147
  return (await loadCli()).disable(rest);
147
148
  case "flags":
148
149
  return (await loadCli()).flags(rest);
150
+ case "config":
151
+ return (await loadCli()).config(rest);
149
152
  case "telemetry":
150
153
  return (await loadCli()).telemetry(rest);
151
154
  case "--version":
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -17072,6 +17072,21 @@ import * as path4 from "node:path";
17072
17072
  import * as fs from "node:fs";
17073
17073
  import * as path from "node:path";
17074
17074
  import { homedir } from "node:os";
17075
+ var PROJECT_MARKERS = [".argent", ".git", "package.json"];
17076
+ function findProjectRoot(startDir) {
17077
+ let current = path.resolve(startDir);
17078
+ while (true) {
17079
+ for (const marker of PROJECT_MARKERS) {
17080
+ if (fs.existsSync(path.join(current, marker))) return current;
17081
+ }
17082
+ const parent = path.dirname(current);
17083
+ if (parent === current) return null;
17084
+ current = parent;
17085
+ }
17086
+ }
17087
+ function resolveProjectRoot(startDir) {
17088
+ return findProjectRoot(startDir) ?? path.resolve(startDir);
17089
+ }
17075
17090
 
17076
17091
  // ../configuration-core/src/paths.ts
17077
17092
  import * as os from "node:os";
@@ -17085,19 +17100,26 @@ function argentHomeDir() {
17085
17100
  const home = process.platform === "win32" ? nonEmpty(process.env.USERPROFILE) ?? os.homedir() : nonEmpty(process.env.HOME) ?? os.homedir();
17086
17101
  return path2.join(home, ".argent");
17087
17102
  }
17088
- function configFilePath() {
17089
- return path2.join(argentHomeDir(), "config.json");
17103
+ function configDir(scope = "global", options = {}) {
17104
+ if (scope === "global") {
17105
+ return options.homeDir ? path2.join(options.homeDir, ".argent") : argentHomeDir();
17106
+ }
17107
+ const cwd = options.cwd ?? process.cwd();
17108
+ return path2.join(resolveProjectRoot(cwd), ".argent");
17109
+ }
17110
+ function configFilePath(scope = "global", options = {}) {
17111
+ return path2.join(configDir(scope, options), "config.json");
17090
17112
  }
17091
17113
 
17092
17114
  // ../configuration-core/src/config.ts
17093
17115
  import * as crypto from "node:crypto";
17094
17116
  import * as fs2 from "node:fs";
17095
17117
  import * as path3 from "node:path";
17096
- function readConfigObject() {
17118
+ function readConfigObject(scope = "global", options = {}) {
17097
17119
  try {
17098
- const raw = fs2.readFileSync(configFilePath(), "utf8");
17120
+ const raw = fs2.readFileSync(configFilePath(scope, options), "utf8");
17099
17121
  const json = JSON.parse(raw);
17100
- if (json && typeof json === "object") {
17122
+ if (json && typeof json === "object" && !Array.isArray(json)) {
17101
17123
  return json;
17102
17124
  }
17103
17125
  } catch {
@@ -17110,8 +17132,8 @@ var LOCK_RETRY_MS = 25;
17110
17132
  function sleepSync(ms) {
17111
17133
  Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
17112
17134
  }
17113
- function acquireConfigLock() {
17114
- const lockPath = configFilePath() + ".lock";
17135
+ function acquireConfigLock(finalPath) {
17136
+ const lockPath = finalPath + ".lock";
17115
17137
  const deadline = Date.now() + LOCK_MAX_WAIT_MS;
17116
17138
  for (; ; ) {
17117
17139
  try {
@@ -17146,14 +17168,15 @@ function releaseConfigLock(lock) {
17146
17168
  } catch {
17147
17169
  }
17148
17170
  }
17149
- function updateConfig(mutate) {
17150
- fs2.mkdirSync(argentHomeDir(), { recursive: true });
17151
- const lock = acquireConfigLock();
17171
+ function updateConfig(mutate, scope = "global", options = {}) {
17172
+ const dir = configDir(scope, options);
17173
+ fs2.mkdirSync(dir, { recursive: true });
17174
+ const finalPath = configFilePath(scope, options);
17175
+ const lock = acquireConfigLock(finalPath);
17152
17176
  try {
17153
- const next = readConfigObject();
17177
+ const next = readConfigObject(scope, options);
17154
17178
  mutate(next);
17155
- const finalPath = configFilePath();
17156
- const tmpPath = path3.join(argentHomeDir(), `.config.tmp.${process.pid}.${crypto.randomUUID()}`);
17179
+ const tmpPath = path3.join(dir, `.config.tmp.${process.pid}.${crypto.randomUUID()}`);
17157
17180
  const fd = fs2.openSync(tmpPath, "wx", 384);
17158
17181
  try {
17159
17182
  fs2.writeSync(fd, JSON.stringify(next, null, 2) + "\n");
@@ -18501,18 +18501,20 @@ import * as fs2 from "node:fs";
18501
18501
  import * as path4 from "node:path";
18502
18502
  import { homedir as homedir3 } from "node:os";
18503
18503
  var PROJECT_MARKERS = [".argent", ".git", "package.json"];
18504
- function resolveProjectRoot(startDir) {
18505
- const initial = path4.resolve(startDir);
18506
- let current = initial;
18504
+ function findProjectRoot(startDir) {
18505
+ let current = path4.resolve(startDir);
18507
18506
  while (true) {
18508
18507
  for (const marker of PROJECT_MARKERS) {
18509
18508
  if (fs2.existsSync(path4.join(current, marker))) return current;
18510
18509
  }
18511
18510
  const parent = path4.dirname(current);
18512
- if (parent === current) return initial;
18511
+ if (parent === current) return null;
18513
18512
  current = parent;
18514
18513
  }
18515
18514
  }
18515
+ function resolveProjectRoot(startDir) {
18516
+ return findProjectRoot(startDir) ?? path4.resolve(startDir);
18517
+ }
18516
18518
  function getFlagsPath(scope, options = {}) {
18517
18519
  const home = options.homeDir ?? homedir3();
18518
18520
  if (scope === "global") {
@@ -18566,19 +18568,26 @@ function argentHomeDir() {
18566
18568
  const home = process.platform === "win32" ? nonEmpty(process.env.USERPROFILE) ?? os.homedir() : nonEmpty(process.env.HOME) ?? os.homedir();
18567
18569
  return path5.join(home, ".argent");
18568
18570
  }
18569
- function configFilePath() {
18570
- return path5.join(argentHomeDir(), "config.json");
18571
+ function configDir(scope = "global", options = {}) {
18572
+ if (scope === "global") {
18573
+ return options.homeDir ? path5.join(options.homeDir, ".argent") : argentHomeDir();
18574
+ }
18575
+ const cwd = options.cwd ?? process.cwd();
18576
+ return path5.join(resolveProjectRoot(cwd), ".argent");
18577
+ }
18578
+ function configFilePath(scope = "global", options = {}) {
18579
+ return path5.join(configDir(scope, options), "config.json");
18571
18580
  }
18572
18581
 
18573
18582
  // ../configuration-core/src/config.ts
18574
18583
  import * as crypto from "node:crypto";
18575
18584
  import * as fs3 from "node:fs";
18576
18585
  import * as path6 from "node:path";
18577
- function readConfigObject() {
18586
+ function readConfigObject(scope = "global", options = {}) {
18578
18587
  try {
18579
- const raw = fs3.readFileSync(configFilePath(), "utf8");
18588
+ const raw = fs3.readFileSync(configFilePath(scope, options), "utf8");
18580
18589
  const json = JSON.parse(raw);
18581
- if (json && typeof json === "object") {
18590
+ if (json && typeof json === "object" && !Array.isArray(json)) {
18582
18591
  return json;
18583
18592
  }
18584
18593
  } catch {
@@ -18591,8 +18600,8 @@ var LOCK_RETRY_MS = 25;
18591
18600
  function sleepSync(ms) {
18592
18601
  Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
18593
18602
  }
18594
- function acquireConfigLock() {
18595
- const lockPath = configFilePath() + ".lock";
18603
+ function acquireConfigLock(finalPath) {
18604
+ const lockPath = finalPath + ".lock";
18596
18605
  const deadline = Date.now() + LOCK_MAX_WAIT_MS;
18597
18606
  for (; ; ) {
18598
18607
  try {
@@ -18627,14 +18636,15 @@ function releaseConfigLock(lock) {
18627
18636
  } catch {
18628
18637
  }
18629
18638
  }
18630
- function updateConfig(mutate) {
18631
- fs3.mkdirSync(argentHomeDir(), { recursive: true });
18632
- const lock = acquireConfigLock();
18639
+ function updateConfig(mutate, scope = "global", options = {}) {
18640
+ const dir = configDir(scope, options);
18641
+ fs3.mkdirSync(dir, { recursive: true });
18642
+ const finalPath = configFilePath(scope, options);
18643
+ const lock = acquireConfigLock(finalPath);
18633
18644
  try {
18634
- const next = readConfigObject();
18645
+ const next = readConfigObject(scope, options);
18635
18646
  mutate(next);
18636
- const finalPath = configFilePath();
18637
- const tmpPath = path6.join(argentHomeDir(), `.config.tmp.${process.pid}.${crypto.randomUUID()}`);
18647
+ const tmpPath = path6.join(dir, `.config.tmp.${process.pid}.${crypto.randomUUID()}`);
18638
18648
  const fd = fs3.openSync(tmpPath, "wx", 384);
18639
18649
  try {
18640
18650
  fs3.writeSync(fd, JSON.stringify(next, null, 2) + "\n");
@@ -98706,18 +98706,20 @@ var fs = __toESM(require("node:fs"), 1);
98706
98706
  var path = __toESM(require("node:path"), 1);
98707
98707
  var import_node_os = require("node:os");
98708
98708
  var PROJECT_MARKERS = [".argent", ".git", "package.json"];
98709
- function resolveProjectRoot(startDir) {
98710
- const initial = path.resolve(startDir);
98711
- let current = initial;
98709
+ function findProjectRoot(startDir) {
98710
+ let current = path.resolve(startDir);
98712
98711
  while (true) {
98713
98712
  for (const marker of PROJECT_MARKERS) {
98714
98713
  if (fs.existsSync(path.join(current, marker))) return current;
98715
98714
  }
98716
98715
  const parent = path.dirname(current);
98717
- if (parent === current) return initial;
98716
+ if (parent === current) return null;
98718
98717
  current = parent;
98719
98718
  }
98720
98719
  }
98720
+ function resolveProjectRoot(startDir) {
98721
+ return findProjectRoot(startDir) ?? path.resolve(startDir);
98722
+ }
98721
98723
  function getFlagsPath(scope, options = {}) {
98722
98724
  const home = options.homeDir ?? (0, import_node_os.homedir)();
98723
98725
  if (scope === "global") {
@@ -98771,8 +98773,15 @@ function argentHomeDir() {
98771
98773
  const home = process.platform === "win32" ? nonEmpty(process.env.USERPROFILE) ?? os.homedir() : nonEmpty(process.env.HOME) ?? os.homedir();
98772
98774
  return path2.join(home, ".argent");
98773
98775
  }
98774
- function configFilePath() {
98775
- return path2.join(argentHomeDir(), "config.json");
98776
+ function configDir(scope = "global", options = {}) {
98777
+ if (scope === "global") {
98778
+ return options.homeDir ? path2.join(options.homeDir, ".argent") : argentHomeDir();
98779
+ }
98780
+ const cwd = options.cwd ?? process.cwd();
98781
+ return path2.join(resolveProjectRoot(cwd), ".argent");
98782
+ }
98783
+ function configFilePath(scope = "global", options = {}) {
98784
+ return path2.join(configDir(scope, options), "config.json");
98776
98785
  }
98777
98786
 
98778
98787
  // ../tool-server/src/index.ts
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swmansion/argent",
3
- "version": "0.16.1",
3
+ "version": "0.16.2-next.0",
4
4
  "description": "MCP server for iOS Simulator and Android Emulator control",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {