@calltelemetry/cli 0.5.8 → 0.5.10

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/lib/fs.d.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  export declare function canWrite(path: string): boolean;
6
6
  /**
7
7
  * Write a file, falling back to sudo tee if permission denied.
8
+ * Uses sudo -n (non-interactive) to avoid hanging when a password prompt is needed.
8
9
  */
9
10
  export declare function writeFileSafe(path: string, content: string, options?: {
10
11
  mode?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/lib/fs.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAa9C;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7G;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3D"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/lib/fs.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAa9C;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB7G;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3D"}
package/dist/lib/fs.js CHANGED
@@ -24,17 +24,25 @@ export function canWrite(path) {
24
24
  }
25
25
  /**
26
26
  * Write a file, falling back to sudo tee if permission denied.
27
+ * Uses sudo -n (non-interactive) to avoid hanging when a password prompt is needed.
27
28
  */
28
29
  export async function writeFileSafe(path, content, options) {
29
30
  if (canWrite(path)) {
30
31
  await fsWriteFile(path, content, options);
31
32
  return;
32
33
  }
33
- // Fall back to sudo tee
34
- const proc = execa('sudo', ['tee', path], { input: content, stdout: 'ignore', stderr: 'pipe' });
35
- await proc;
34
+ // Fall back to non-interactive sudo tee (-n prevents password prompts)
35
+ try {
36
+ await execa('sudo', ['-n', 'tee', path], { input: content, stdout: 'ignore', stderr: 'pipe' });
37
+ }
38
+ catch (err) {
39
+ const hint = err?.stderr?.includes('password') || err?.stderr?.includes('sudoers')
40
+ ? ' (run ct as root or configure passwordless sudo)'
41
+ : '';
42
+ throw new Error(`Permission denied writing ${path}${hint}`);
43
+ }
36
44
  if (options?.mode) {
37
- await execa('sudo', ['chmod', options.mode.toString(8), path]);
45
+ await execa('sudo', ['-n', 'chmod', options.mode.toString(8), path]);
38
46
  }
39
47
  }
40
48
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/lib/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,EAAE,IAAI,IAAI,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;QACxC,IAAI,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe,EAAE,OAA2B;IAC5F,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,MAAM,IAAI,CAAC;IAEX,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClD,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClD,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/lib/fs.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ /** RPC: Get license status for the first org. */
2
+ export declare const LICENSE_STATUS_RPC = "\n alias Cdrcisco.Identity\n alias Cdrcisco.License\n\n try do\n org = Identity.list_orgs() |> List.first()\n\n if org do\n status = License.status(org.id)\n Jason.encode!(%{license: status, org_id: org.id, org_name: org.name})\n |> IO.puts()\n else\n Jason.encode!(%{error: \"no organization found\"})\n |> IO.puts()\n end\n rescue\n e ->\n Jason.encode!(%{error: inspect(e)})\n |> IO.puts()\n end\n";
1
3
  /** RPC: List all CURRI policies for all orgs (for load testing). */
2
4
  export declare const CURRI_POLICIES_RPC = "\n alias Cdrcisco.Identity\n alias Cdrcisco.Policies\n\n try do\n orgs = Identity.get_all_orgs()\n\n result = Enum.flat_map(orgs, fn org ->\n Policies.list_policies_by_org(org.id)\n |> Enum.map(fn p ->\n %{\n id: p.id,\n name: p.name,\n api_key: p.api_key,\n org_id: org.id,\n org_name: org.name\n }\n end)\n end)\n\n Jason.encode!(%{policies: result, count: length(result)})\n |> IO.puts()\n rescue\n e ->\n Jason.encode!(%{error: inspect(e), policies: [], count: 0})\n |> IO.puts()\n end\n";
3
5
  /** RPC: List all greeting policies for all orgs with rules. */
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-scripts.d.ts","sourceRoot":"","sources":["../../src/lib/rpc-scripts.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,2lBA2B9B,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,s6DA6DjC,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6CxD;AAED,eAAO,MAAM,oBAAoB,urDAqDhC,CAAC"}
1
+ {"version":3,"file":"rpc-scripts.d.ts","sourceRoot":"","sources":["../../src/lib/rpc-scripts.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,4cAoB9B,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,2lBA2B9B,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,s6DA6DjC,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6CxD;AAED,eAAO,MAAM,oBAAoB,urDAqDhC,CAAC"}
@@ -1,3 +1,25 @@
1
+ /** RPC: Get license status for the first org. */
2
+ export const LICENSE_STATUS_RPC = `
3
+ alias Cdrcisco.Identity
4
+ alias Cdrcisco.License
5
+
6
+ try do
7
+ org = Identity.list_orgs() |> List.first()
8
+
9
+ if org do
10
+ status = License.status(org.id)
11
+ Jason.encode!(%{license: status, org_id: org.id, org_name: org.name})
12
+ |> IO.puts()
13
+ else
14
+ Jason.encode!(%{error: "no organization found"})
15
+ |> IO.puts()
16
+ end
17
+ rescue
18
+ e ->
19
+ Jason.encode!(%{error: inspect(e)})
20
+ |> IO.puts()
21
+ end
22
+ `;
1
23
  /** RPC: List all CURRI policies for all orgs (for load testing). */
2
24
  export const CURRI_POLICIES_RPC = `
3
25
  alias Cdrcisco.Identity
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-scripts.js","sourceRoot":"","sources":["../../src/lib/rpc-scripts.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BjC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DpC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO;;;;;;qDAM4C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4BhC,OAAO;;;;;;mFAMgD,OAAO;;;GAGvF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDnC,CAAC"}
1
+ {"version":3,"file":"rpc-scripts.js","sourceRoot":"","sources":["../../src/lib/rpc-scripts.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;CAoBjC,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BjC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DpC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO;;;;;;qDAM4C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4BhC,OAAO;;;;;;mFAMgD,OAAO;;;GAGvF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDnC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version. */
2
- export declare const VERSION = "0.5.8";
2
+ export declare const VERSION = "0.5.10";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,eAAO,MAAM,OAAO,WAAW,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version. */
2
- export const VERSION = '0.5.8';
2
+ export const VERSION = '0.5.10';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/shell/commands/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA+ChD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,WA4WzB,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/shell/commands/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA+ChD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,WAwWzB,CAAC"}