cxgrd 0.1.0 → 0.1.2

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.
Files changed (115) hide show
  1. package/dist/auth/audit-usage.js +34 -21
  2. package/dist/auth/audit-usage.js.map +1 -1
  3. package/dist/auth/auth-session.js +26 -20
  4. package/dist/auth/auth-session.js.map +1 -1
  5. package/dist/auth/auth-store.js +22 -16
  6. package/dist/auth/auth-store.js.map +1 -1
  7. package/dist/auth/entitlements.js +35 -22
  8. package/dist/auth/entitlements.js.map +1 -1
  9. package/dist/auth/open-browser.js +6 -3
  10. package/dist/auth/open-browser.js.map +1 -1
  11. package/dist/auth/plans.js +13 -6
  12. package/dist/auth/plans.js.map +1 -1
  13. package/dist/auth/plans.test.js +23 -18
  14. package/dist/auth/plans.test.js.map +1 -1
  15. package/dist/cg-directory.js +40 -35
  16. package/dist/cg-directory.js.map +1 -1
  17. package/dist/check/check-runner.js +16 -13
  18. package/dist/check/check-runner.js.map +1 -1
  19. package/dist/check/compiler-service.js +22 -19
  20. package/dist/check/compiler-service.js.map +1 -1
  21. package/dist/check/parsers/cargo.js +4 -1
  22. package/dist/check/parsers/cargo.js.map +1 -1
  23. package/dist/check/parsers/parsers.test.js +30 -25
  24. package/dist/check/parsers/parsers.test.js.map +1 -1
  25. package/dist/check/parsers/pyright.js +4 -1
  26. package/dist/check/parsers/pyright.js.map +1 -1
  27. package/dist/check/parsers/tsc-cli.js +4 -1
  28. package/dist/check/parsers/tsc-cli.js.map +1 -1
  29. package/dist/check/project-tooling.js +23 -16
  30. package/dist/check/project-tooling.js.map +1 -1
  31. package/dist/check/run-command.js +9 -5
  32. package/dist/check/run-command.js.map +1 -1
  33. package/dist/check/scope.js +14 -8
  34. package/dist/check/scope.js.map +1 -1
  35. package/dist/check/scope.test.js +15 -10
  36. package/dist/check/scope.test.js.map +1 -1
  37. package/dist/check/strict-mode.js +6 -2
  38. package/dist/check/strict-mode.js.map +1 -1
  39. package/dist/check/strict-mode.test.js +19 -14
  40. package/dist/check/strict-mode.test.js.map +1 -1
  41. package/dist/check/structural-checks.js +4 -1
  42. package/dist/check/structural-checks.js.map +1 -1
  43. package/dist/check/types.js +2 -1
  44. package/dist/check/verifiers/python.js +11 -8
  45. package/dist/check/verifiers/python.js.map +1 -1
  46. package/dist/check/verifiers/rust.js +11 -8
  47. package/dist/check/verifiers/rust.js.map +1 -1
  48. package/dist/check/verifiers/typescript.js +24 -18
  49. package/dist/check/verifiers/typescript.js.map +1 -1
  50. package/dist/commands/auth.js +42 -34
  51. package/dist/commands/auth.js.map +1 -1
  52. package/dist/commands/check.js +49 -43
  53. package/dist/commands/check.js.map +1 -1
  54. package/dist/commands/doctor.js +33 -27
  55. package/dist/commands/doctor.js.map +1 -1
  56. package/dist/commands/init-hooks.js +34 -31
  57. package/dist/commands/init-hooks.js.map +1 -1
  58. package/dist/commands/input.js +46 -43
  59. package/dist/commands/input.js.map +1 -1
  60. package/dist/commands/prompt.js +40 -34
  61. package/dist/commands/prompt.js.map +1 -1
  62. package/dist/commands/scan.js +49 -43
  63. package/dist/commands/scan.js.map +1 -1
  64. package/dist/commands/watch.js +20 -17
  65. package/dist/commands/watch.js.map +1 -1
  66. package/dist/config/env.js +21 -16
  67. package/dist/config/env.js.map +1 -1
  68. package/dist/graph.js +38 -36
  69. package/dist/graph.js.map +1 -1
  70. package/dist/index.js +32 -27
  71. package/dist/index.js.map +1 -1
  72. package/dist/memory/pattern-analyzer.js +6 -2
  73. package/dist/memory/pattern-analyzer.js.map +1 -1
  74. package/dist/memory/repo-memory.js +10 -4
  75. package/dist/memory/repo-memory.js.map +1 -1
  76. package/dist/memory/types.js +2 -1
  77. package/dist/prompt/llm-client.js +10 -7
  78. package/dist/prompt/llm-client.js.map +1 -1
  79. package/dist/prompt/subgraph.js +10 -6
  80. package/dist/prompt/subgraph.js.map +1 -1
  81. package/dist/scanner.js +51 -49
  82. package/dist/scanner.js.map +1 -1
  83. package/dist/team/audit.js +10 -7
  84. package/dist/team/audit.js.map +1 -1
  85. package/dist/team/cloud-client.js +23 -17
  86. package/dist/team/cloud-client.js.map +1 -1
  87. package/dist/team/dev-store.js +34 -25
  88. package/dist/team/dev-store.js.map +1 -1
  89. package/dist/team/graph-sync.js +28 -20
  90. package/dist/team/graph-sync.js.map +1 -1
  91. package/dist/team/policy-cache.js +19 -14
  92. package/dist/team/policy-cache.js.map +1 -1
  93. package/dist/team/policy-engine.js +4 -1
  94. package/dist/team/policy-engine.js.map +1 -1
  95. package/dist/team/policy-engine.test.js +18 -13
  96. package/dist/team/policy-engine.test.js.map +1 -1
  97. package/dist/team/repo-identity.js +9 -6
  98. package/dist/team/repo-identity.js.map +1 -1
  99. package/dist/team/types.js +2 -1
  100. package/dist/toolchain/probe.js +23 -14
  101. package/dist/toolchain/probe.js.map +1 -1
  102. package/dist/toolchain/project-languages.js +20 -16
  103. package/dist/toolchain/project-languages.js.map +1 -1
  104. package/dist/toolchain/types.js +2 -1
  105. package/dist/utils/blast-radius-analyzer.js +7 -2
  106. package/dist/utils/blast-radius-analyzer.js.map +1 -1
  107. package/dist/utils/change-detector.js +8 -3
  108. package/dist/utils/change-detector.js.map +1 -1
  109. package/dist/utils/cli-formatter.js +34 -26
  110. package/dist/utils/cli-formatter.js.map +1 -1
  111. package/dist/utils/git-hook-manager.js +42 -34
  112. package/dist/utils/git-hook-manager.js.map +1 -1
  113. package/dist/utils/project-watcher.js +17 -12
  114. package/dist/utils/project-watcher.js.map +1 -1
  115. package/package.json +1 -2
@@ -1,8 +1,20 @@
1
- import { mkdir, readFile, writeFile } from 'fs/promises';
2
- import { join } from 'path';
3
- import { homedir } from 'os';
4
- import chalk from 'chalk';
5
- export class AuditUsageExceededError extends Error {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FREE_MONTHLY_AUDIT_LIMIT = exports.AuditUsageExceededError = void 0;
7
+ exports.getCurrentMonthAuditCount = getCurrentMonthAuditCount;
8
+ exports.incrementAuditCount = incrementAuditCount;
9
+ exports.checkFreeAuditLimit = checkFreeAuditLimit;
10
+ exports.printAuditUsageStatus = printAuditUsageStatus;
11
+ const promises_1 = require("fs/promises");
12
+ const path_1 = require("path");
13
+ const os_1 = require("os");
14
+ const chalk_1 = __importDefault(require("chalk"));
15
+ class AuditUsageExceededError extends Error {
16
+ used;
17
+ limit;
6
18
  constructor(used, limit) {
7
19
  super(`Monthly audit limit exceeded. Used: ${used}/${limit}\n` +
8
20
  ` Upgrade to Pro for unlimited audits at https://cxgrd.com/pricing`);
@@ -11,13 +23,14 @@ export class AuditUsageExceededError extends Error {
11
23
  this.name = 'AuditUsageExceededError';
12
24
  }
13
25
  }
14
- export const FREE_MONTHLY_AUDIT_LIMIT = 50;
26
+ exports.AuditUsageExceededError = AuditUsageExceededError;
27
+ exports.FREE_MONTHLY_AUDIT_LIMIT = 50;
15
28
  function getUsagePath() {
16
- return join(homedir(), '.cg', 'usage.json');
29
+ return (0, path_1.join)((0, os_1.homedir)(), '.cg', 'usage.json');
17
30
  }
18
31
  async function readUsageFile() {
19
32
  try {
20
- const content = await readFile(getUsagePath(), 'utf-8');
33
+ const content = await (0, promises_1.readFile)(getUsagePath(), 'utf-8');
21
34
  return JSON.parse(content);
22
35
  }
23
36
  catch {
@@ -26,10 +39,10 @@ async function readUsageFile() {
26
39
  }
27
40
  async function writeUsageFile(records) {
28
41
  const path = getUsagePath();
29
- const dir = join(homedir(), '.cg');
42
+ const dir = (0, path_1.join)((0, os_1.homedir)(), '.cg');
30
43
  try {
31
- await mkdir(dir, { recursive: true });
32
- await writeFile(path, JSON.stringify(records, null, 2), 'utf-8');
44
+ await (0, promises_1.mkdir)(dir, { recursive: true });
45
+ await (0, promises_1.writeFile)(path, JSON.stringify(records, null, 2), 'utf-8');
33
46
  }
34
47
  catch {
35
48
  // Silently fail if we can't write usage (e.g., permission issues)
@@ -46,7 +59,7 @@ function getCurrentMonth() {
46
59
  /**
47
60
  * Get current month's audit count for free tier tracking
48
61
  */
49
- export async function getCurrentMonthAuditCount() {
62
+ async function getCurrentMonthAuditCount() {
50
63
  const records = await readUsageFile();
51
64
  const current = getCurrentMonth();
52
65
  const record = records.find((r) => r.year === current.year && r.month === current.month);
@@ -55,7 +68,7 @@ export async function getCurrentMonthAuditCount() {
55
68
  /**
56
69
  * Increment audit count (called after successful scan/check)
57
70
  */
58
- export async function incrementAuditCount() {
71
+ async function incrementAuditCount() {
59
72
  const records = await readUsageFile();
60
73
  const current = getCurrentMonth();
61
74
  const record = records.find((r) => r.year === current.year && r.month === current.month);
@@ -84,21 +97,21 @@ export async function incrementAuditCount() {
84
97
  * Check if free tier audit limit exceeded
85
98
  * Returns true if limit OK, throws if exceeded
86
99
  */
87
- export async function checkFreeAuditLimit() {
100
+ async function checkFreeAuditLimit() {
88
101
  const count = await getCurrentMonthAuditCount();
89
- if (count >= FREE_MONTHLY_AUDIT_LIMIT) {
90
- throw new AuditUsageExceededError(count, FREE_MONTHLY_AUDIT_LIMIT);
102
+ if (count >= exports.FREE_MONTHLY_AUDIT_LIMIT) {
103
+ throw new AuditUsageExceededError(count, exports.FREE_MONTHLY_AUDIT_LIMIT);
91
104
  }
92
105
  }
93
106
  /**
94
107
  * Print current usage status to console
95
108
  */
96
- export async function printAuditUsageStatus() {
109
+ async function printAuditUsageStatus() {
97
110
  const count = await getCurrentMonthAuditCount();
98
- const percent = Math.round((count / FREE_MONTHLY_AUDIT_LIMIT) * 100);
99
- console.log(chalk.gray(` Audits this month: ${count}/${FREE_MONTHLY_AUDIT_LIMIT} (${percent}%)`));
100
- if (count >= FREE_MONTHLY_AUDIT_LIMIT - 5) {
101
- console.log(chalk.yellow(` ⚠ Approaching monthly limit — upgrade to Pro for unlimited audits`));
111
+ const percent = Math.round((count / exports.FREE_MONTHLY_AUDIT_LIMIT) * 100);
112
+ console.log(chalk_1.default.gray(` Audits this month: ${count}/${exports.FREE_MONTHLY_AUDIT_LIMIT} (${percent}%)`));
113
+ if (count >= exports.FREE_MONTHLY_AUDIT_LIMIT - 5) {
114
+ console.log(chalk_1.default.yellow(` ⚠ Approaching monthly limit — upgrade to Pro for unlimited audits`));
102
115
  }
103
116
  }
104
117
  //# sourceMappingURL=audit-usage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-usage.js","sourceRoot":"","sources":["../../src/auth/audit-usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-usage.js","sourceRoot":"","sources":["../../src/auth/audit-usage.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
- import { randomUUID } from 'crypto';
2
- import { envString } from '../config/env';
3
- import { readAuth } from './auth-store';
4
- import { normalizePlan } from './plans';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveActiveSession = resolveActiveSession;
4
+ exports.pollAuthSession = pollAuthSession;
5
+ exports.createCliSessionId = createCliSessionId;
6
+ exports.buildCliAuthUrl = buildCliAuthUrl;
7
+ const crypto_1 = require("crypto");
8
+ const env_1 = require("../config/env");
9
+ const auth_store_1 = require("./auth-store");
10
+ const plans_1 = require("./plans");
5
11
  function normalizeRole(role) {
6
12
  const r = (role || 'member').toLowerCase();
7
13
  if (r === 'lead' || r === 'admin')
@@ -10,23 +16,23 @@ function normalizeRole(role) {
10
16
  }
11
17
  const POLL_INTERVAL_MS = 2000;
12
18
  const POLL_TIMEOUT_MS = 5 * 60 * 1000;
13
- export async function resolveActiveSession() {
19
+ async function resolveActiveSession() {
14
20
  // Dev override — lets you test pro/team locally without real auth
15
- const devPlan = envString('CXGRD_DEV_PLAN');
21
+ const devPlan = (0, env_1.envString)('CXGRD_DEV_PLAN');
16
22
  if (devPlan) {
17
- const plan = normalizePlan(devPlan);
23
+ const plan = (0, plans_1.normalizePlan)(devPlan);
18
24
  if (plan !== 'free') {
19
25
  return {
20
- token: envString('CXGRD_DEV_TOKEN', 'dev-local'),
26
+ token: (0, env_1.envString)('CXGRD_DEV_TOKEN', 'dev-local'),
21
27
  plan,
22
28
  source: 'dev_override',
23
- orgId: envString('CXGRD_DEV_ORG_ID', 'org_dev'),
24
- orgName: envString('CXGRD_DEV_ORG_NAME', 'Dev Org'),
25
- role: normalizeRole(envString('CXGRD_DEV_ROLE', 'member')),
29
+ orgId: (0, env_1.envString)('CXGRD_DEV_ORG_ID', 'org_dev'),
30
+ orgName: (0, env_1.envString)('CXGRD_DEV_ORG_NAME', 'Dev Org'),
31
+ role: normalizeRole((0, env_1.envString)('CXGRD_DEV_ROLE', 'member')),
26
32
  };
27
33
  }
28
34
  }
29
- const stored = await readAuth();
35
+ const stored = await (0, auth_store_1.readAuth)();
30
36
  if (!stored)
31
37
  return null;
32
38
  return {
@@ -40,8 +46,8 @@ export async function resolveActiveSession() {
40
46
  role: normalizeRole(stored.role),
41
47
  };
42
48
  }
43
- export async function pollAuthSession(sessionId) {
44
- const baseUrl = envString('CXGRD_AUTH_BASE_URL', 'https://cxgrd.com').replace(/\/$/, '');
49
+ async function pollAuthSession(sessionId) {
50
+ const baseUrl = (0, env_1.envString)('CXGRD_AUTH_BASE_URL', 'https://cxgrd.com').replace(/\/$/, '');
45
51
  const url = `${baseUrl}/api/auth/cli/session/${sessionId}`;
46
52
  const started = Date.now();
47
53
  while (Date.now() - started < POLL_TIMEOUT_MS) {
@@ -69,7 +75,7 @@ export async function pollAuthSession(sessionId) {
69
75
  }
70
76
  const auth = {
71
77
  token,
72
- plan: normalizePlan(data.plan),
78
+ plan: (0, plans_1.normalizePlan)(data.plan),
73
79
  email: data.email,
74
80
  // these are only set for team/enterprise accounts
75
81
  orgId: data.org_id ?? data.orgId,
@@ -83,11 +89,11 @@ export async function pollAuthSession(sessionId) {
83
89
  }
84
90
  throw new Error('Timed out waiting for browser login. Try again.');
85
91
  }
86
- export function createCliSessionId() {
87
- return randomUUID();
92
+ function createCliSessionId() {
93
+ return (0, crypto_1.randomUUID)();
88
94
  }
89
- export function buildCliAuthUrl(sessionId) {
90
- const baseUrl = envString('CXGRD_AUTH_BASE_URL', 'https://cxgrd.com').replace(/\/$/, '');
95
+ function buildCliAuthUrl(sessionId) {
96
+ const baseUrl = (0, env_1.envString)('CXGRD_AUTH_BASE_URL', 'https://cxgrd.com').replace(/\/$/, '');
91
97
  return `${baseUrl}/auth/cli?session=${encodeURIComponent(sessionId)}`;
92
98
  }
93
99
  function sleep(ms) {
@@ -97,6 +103,6 @@ function normalizeExpiry(expiresAt) {
97
103
  if (!expiresAt || Number.isNaN(expiresAt))
98
104
  return undefined;
99
105
  // accept either epoch seconds or milliseconds
100
- return expiresAt < 1000000000000 ? expiresAt * 1000 : expiresAt;
106
+ return expiresAt < 1_000_000_000_000 ? expiresAt * 1000 : expiresAt;
101
107
  }
102
108
  //# sourceMappingURL=auth-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../../src/auth/auth-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../../src/auth/auth-session.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
- import { mkdir, readFile, writeFile, unlink } from 'fs/promises';
2
- import { homedir } from 'os';
3
- import { join } from 'path';
4
- import { normalizePlan } from './plans';
5
- const AUTH_DIR = join(homedir(), '.cg');
6
- const AUTH_PATH = join(AUTH_DIR, 'auth.json');
7
- export async function readAuth() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readAuth = readAuth;
4
+ exports.writeAuth = writeAuth;
5
+ exports.clearAuth = clearAuth;
6
+ exports.getAuthPath = getAuthPath;
7
+ const promises_1 = require("fs/promises");
8
+ const os_1 = require("os");
9
+ const path_1 = require("path");
10
+ const plans_1 = require("./plans");
11
+ const AUTH_DIR = (0, path_1.join)((0, os_1.homedir)(), '.cg');
12
+ const AUTH_PATH = (0, path_1.join)(AUTH_DIR, 'auth.json');
13
+ async function readAuth() {
8
14
  try {
9
- const raw = await readFile(AUTH_PATH, 'utf-8');
15
+ const raw = await (0, promises_1.readFile)(AUTH_PATH, 'utf-8');
10
16
  const data = JSON.parse(raw);
11
17
  if (!data.token)
12
18
  return null;
@@ -14,31 +20,31 @@ export async function readAuth() {
14
20
  if (expiresAt && Date.now() > expiresAt) {
15
21
  return null;
16
22
  }
17
- return { ...data, plan: normalizePlan(data.plan), expiresAt };
23
+ return { ...data, plan: (0, plans_1.normalizePlan)(data.plan), expiresAt };
18
24
  }
19
25
  catch {
20
26
  return null;
21
27
  }
22
28
  }
23
- export async function writeAuth(auth) {
24
- await mkdir(AUTH_DIR, { recursive: true });
25
- await writeFile(AUTH_PATH, JSON.stringify(auth, null, 2), 'utf-8');
29
+ async function writeAuth(auth) {
30
+ await (0, promises_1.mkdir)(AUTH_DIR, { recursive: true });
31
+ await (0, promises_1.writeFile)(AUTH_PATH, JSON.stringify(auth, null, 2), 'utf-8');
26
32
  }
27
- export async function clearAuth() {
33
+ async function clearAuth() {
28
34
  try {
29
- await unlink(AUTH_PATH);
35
+ await (0, promises_1.unlink)(AUTH_PATH);
30
36
  }
31
37
  catch {
32
38
  // already cleared
33
39
  }
34
40
  }
35
- export function getAuthPath() {
41
+ function getAuthPath() {
36
42
  return AUTH_PATH;
37
43
  }
38
44
  function normalizeExpiry(expiresAt) {
39
45
  if (!expiresAt || Number.isNaN(expiresAt)) {
40
46
  return undefined;
41
47
  }
42
- return expiresAt < 1000000000000 ? expiresAt * 1000 : expiresAt;
48
+ return expiresAt < 1_000_000_000_000 ? expiresAt * 1000 : expiresAt;
43
49
  }
44
50
  //# sourceMappingURL=auth-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/auth/auth-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAcxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAgB;IAC9C,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,SAA6B;IACpD,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,GAAG,aAAiB,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/auth/auth-store.ts"],"names":[],"mappings":";;AAqBA,4BAaC;AAED,8BAGC;AAED,8BAMC;AAED,kCAEC;AAnDD,0CAAiE;AACjE,2BAA6B;AAC7B,+BAA4B;AAE5B,mCAAwC;AAcxC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,KAAK,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEvC,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,IAAgB;IAC9C,MAAM,IAAA,gBAAK,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAA,oBAAS,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAEM,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC;QACH,MAAM,IAAA,iBAAM,EAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,SAA6B;IACpD,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC"}
@@ -1,42 +1,55 @@
1
- import chalk from 'chalk';
2
- import { planIncludesFeature, planDisplayName, isTeamOrEnterprise, } from './plans';
3
- import { resolveActiveSession } from './auth-session';
4
- export class ProRequiredError extends Error {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TeamRequiredError = exports.ProRequiredError = void 0;
7
+ exports.requireProFeature = requireProFeature;
8
+ exports.requireTeamFeature = requireTeamFeature;
9
+ exports.printSessionStatus = printSessionStatus;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const plans_1 = require("./plans");
12
+ const auth_session_1 = require("./auth-session");
13
+ class ProRequiredError extends Error {
14
+ feature;
5
15
  constructor(message, feature) {
6
16
  super(message);
7
17
  this.feature = feature;
8
18
  this.name = 'ProRequiredError';
9
19
  }
10
20
  }
11
- export class TeamRequiredError extends Error {
21
+ exports.ProRequiredError = ProRequiredError;
22
+ class TeamRequiredError extends Error {
23
+ feature;
12
24
  constructor(message, feature) {
13
25
  super(message);
14
26
  this.feature = feature;
15
27
  this.name = 'TeamRequiredError';
16
28
  }
17
29
  }
18
- export async function requireProFeature(feature) {
19
- const session = await resolveActiveSession();
30
+ exports.TeamRequiredError = TeamRequiredError;
31
+ async function requireProFeature(feature) {
32
+ const session = await (0, auth_session_1.resolveActiveSession)();
20
33
  if (!session) {
21
34
  throw new ProRequiredError(`This feature requires a Pro, Team, or Enterprise plan.\n` +
22
- ` Run ${chalk.cyan('cxgrd auth login')} or visit https://cxgrd.com/pricing\n` +
35
+ ` Run ${chalk_1.default.cyan('cxgrd auth login')} or visit https://cxgrd.com/pricing\n` +
23
36
  ` Local dev: set CXGRD_DEV_PLAN=pro in .env (see .env.example)`, feature);
24
37
  }
25
- if (!planIncludesFeature(session.plan, feature)) {
26
- throw new ProRequiredError(`Your plan (${planDisplayName(session.plan)}) does not include this feature.\n` +
38
+ if (!(0, plans_1.planIncludesFeature)(session.plan, feature)) {
39
+ throw new ProRequiredError(`Your plan (${(0, plans_1.planDisplayName)(session.plan)}) does not include this feature.\n` +
27
40
  ` Upgrade at https://cxgrd.com/pricing`, feature);
28
41
  }
29
42
  return session;
30
43
  }
31
- export async function requireTeamFeature(feature) {
32
- const session = await resolveActiveSession();
44
+ async function requireTeamFeature(feature) {
45
+ const session = await (0, auth_session_1.resolveActiveSession)();
33
46
  if (!session) {
34
47
  throw new TeamRequiredError(`This feature requires Team or Enterprise.\n` +
35
- ` Run ${chalk.cyan('cxgrd auth login')} after upgrading\n` +
48
+ ` Run ${chalk_1.default.cyan('cxgrd auth login')} after upgrading\n` +
36
49
  ` Local dev: CXGRD_DEV_PLAN=team CXGRD_DEV_ORG_ID=org_dev CXGRD_DEV_CLOUD=1`, feature);
37
50
  }
38
- if (!planIncludesFeature(session.plan, feature)) {
39
- throw new TeamRequiredError(`Your plan (${planDisplayName(session.plan)}) does not include team features.\n` +
51
+ if (!(0, plans_1.planIncludesFeature)(session.plan, feature)) {
52
+ throw new TeamRequiredError(`Your plan (${(0, plans_1.planDisplayName)(session.plan)}) does not include team features.\n` +
40
53
  ` Upgrade at https://cxgrd.com/pricing`, feature);
41
54
  }
42
55
  if (!session.orgId) {
@@ -44,19 +57,19 @@ export async function requireTeamFeature(feature) {
44
57
  }
45
58
  return session;
46
59
  }
47
- export function printSessionStatus(session) {
60
+ function printSessionStatus(session) {
48
61
  if (!session) {
49
- console.log(chalk.gray(' Not signed in (Free tier — scan, input, check available locally)'));
62
+ console.log(chalk_1.default.gray(' Not signed in (Free tier — scan, input, check available locally)'));
50
63
  return;
51
64
  }
52
65
  const src = session.source === 'dev_override'
53
- ? chalk.yellow(' (dev override via CXGRD_DEV_PLAN)')
66
+ ? chalk_1.default.yellow(' (dev override via CXGRD_DEV_PLAN)')
54
67
  : '';
55
- console.log(chalk.green(` Signed in as ${session.email || 'user'} — ${planDisplayName(session.plan)} plan`) +
68
+ console.log(chalk_1.default.green(` Signed in as ${session.email || 'user'} — ${(0, plans_1.planDisplayName)(session.plan)} plan`) +
56
69
  src);
57
- console.log(chalk.gray(` Prompt: ${planIncludesFeature(session.plan, 'prompt') ? 'yes' : 'no'}`));
58
- if (isTeamOrEnterprise(session.plan)) {
59
- console.log(chalk.gray(` Org: ${session.orgName || session.orgId || '—'} · role: ${session.role} · sync: enabled`));
70
+ console.log(chalk_1.default.gray(` Prompt: ${(0, plans_1.planIncludesFeature)(session.plan, 'prompt') ? 'yes' : 'no'}`));
71
+ if ((0, plans_1.isTeamOrEnterprise)(session.plan)) {
72
+ console.log(chalk_1.default.gray(` Org: ${session.orgName || session.orgId || '—'} · role: ${session.role} · sync: enabled`));
60
73
  }
61
74
  }
62
75
  //# sourceMappingURL=entitlements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../src/auth/entitlements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../src/auth/entitlements.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { exec } from 'child_process';
2
- export function openBrowser(url) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openBrowser = openBrowser;
4
+ const child_process_1 = require("child_process");
5
+ function openBrowser(url) {
3
6
  const platform = process.platform;
4
7
  let command;
5
8
  if (platform === 'win32') {
@@ -11,7 +14,7 @@ export function openBrowser(url) {
11
14
  else {
12
15
  command = `xdg-open "${url}"`;
13
16
  }
14
- exec(command, (err) => {
17
+ (0, child_process_1.exec)(command, (err) => {
15
18
  if (err) {
16
19
  console.log(` Open this URL in your browser:\n ${url}`);
17
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../../src/auth/open-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,OAAe,CAAC;IAEpB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACpB,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../../src/auth/open-browser.ts"],"names":[],"mappings":";;AAEA,kCAiBC;AAnBD,iDAAqC;AAErC,SAAgB,WAAW,CAAC,GAAW;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,OAAe,CAAC;IAEpB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;IAED,IAAA,oBAAI,EAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACpB,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,11 @@
1
- export const PRO_FEATURES = [
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEAM_FEATURES = exports.PRO_FEATURES = void 0;
4
+ exports.normalizePlan = normalizePlan;
5
+ exports.planIncludesFeature = planIncludesFeature;
6
+ exports.isTeamOrEnterprise = isTeamOrEnterprise;
7
+ exports.planDisplayName = planDisplayName;
8
+ exports.PRO_FEATURES = [
2
9
  'prompt',
3
10
  'repo_memory',
4
11
  'cloud_sync',
@@ -6,15 +13,15 @@ export const PRO_FEATURES = [
6
13
  'api_access',
7
14
  'priority_support',
8
15
  ];
9
- export const TEAM_FEATURES = ['team_cloud', 'org_policies', 'audit_events'];
10
- export function normalizePlan(plan) {
16
+ exports.TEAM_FEATURES = ['team_cloud', 'org_policies', 'audit_events'];
17
+ function normalizePlan(plan) {
11
18
  const p = (plan || 'free').toLowerCase();
12
19
  if (p === 'pro' || p === 'team' || p === 'enterprise') {
13
20
  return p;
14
21
  }
15
22
  return 'free';
16
23
  }
17
- export function planIncludesFeature(plan, feature) {
24
+ function planIncludesFeature(plan, feature) {
18
25
  if (feature === 'prompt' ||
19
26
  feature === 'repo_memory' ||
20
27
  feature === 'cloud_sync' ||
@@ -28,10 +35,10 @@ export function planIncludesFeature(plan, feature) {
28
35
  }
29
36
  return false;
30
37
  }
31
- export function isTeamOrEnterprise(plan) {
38
+ function isTeamOrEnterprise(plan) {
32
39
  return plan === 'team' || plan === 'enterprise';
33
40
  }
34
- export function planDisplayName(plan) {
41
+ function planDisplayName(plan) {
35
42
  return plan.charAt(0).toUpperCase() + plan.slice(1);
36
43
  }
37
44
  //# sourceMappingURL=plans.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/auth/plans.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,YAAY;IACZ,kBAAkB;CACV,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,CAAU,CAAC;AAGrF,MAAM,UAAU,aAAa,CAAC,IAAwB;IACpD,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAsB,EACtB,OAAiC;IAEjC,IACE,OAAO,KAAK,QAAQ;QACpB,OAAO,KAAK,aAAa;QACzB,OAAO,KAAK,YAAY;QACxB,OAAO,KAAK,mBAAmB;QAC/B,OAAO,KAAK,YAAY;QACxB,OAAO,KAAK,kBAAkB,EAC9B,CAAC;QACD,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QACzF,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/auth/plans.ts"],"names":[],"mappings":";;;AAeA,sCAMC;AAED,kDAkBC;AAED,gDAEC;AAED,0CAEC;AA/CY,QAAA,YAAY,GAAG;IAC1B,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,YAAY;IACZ,kBAAkB;CACV,CAAC;AAGE,QAAA,aAAa,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,CAAU,CAAC;AAGrF,SAAgB,aAAa,CAAC,IAAwB;IACpD,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,mBAAmB,CACjC,IAAsB,EACtB,OAAiC;IAEjC,IACE,OAAO,KAAK,QAAQ;QACpB,OAAO,KAAK,aAAa;QACzB,OAAO,KAAK,YAAY;QACxB,OAAO,KAAK,mBAAmB;QAC/B,OAAO,KAAK,YAAY;QACxB,OAAO,KAAK,kBAAkB,EAC9B,CAAC;QACD,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QACzF,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAsB;IACvD,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC;AAClD,CAAC;AAED,SAAgB,eAAe,CAAC,IAAsB;IACpD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -1,23 +1,28 @@
1
- import { describe, it } from 'node:test';
2
- import assert from 'node:assert/strict';
3
- import { normalizePlan, planIncludesFeature } from './plans';
4
- describe('plans', () => {
5
- it('enables prompt for pro and above', () => {
6
- assert.equal(planIncludesFeature('pro', 'prompt'), true);
7
- assert.equal(planIncludesFeature('pro', 'api_access'), true);
8
- assert.equal(planIncludesFeature('pro', 'advanced_analysis'), true);
9
- assert.equal(planIncludesFeature('team', 'prompt'), true);
10
- assert.equal(planIncludesFeature('free', 'prompt'), false);
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const plans_1 = require("./plans");
9
+ (0, node_test_1.describe)('plans', () => {
10
+ (0, node_test_1.it)('enables prompt for pro and above', () => {
11
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('pro', 'prompt'), true);
12
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('pro', 'api_access'), true);
13
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('pro', 'advanced_analysis'), true);
14
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('team', 'prompt'), true);
15
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('free', 'prompt'), false);
11
16
  });
12
- it('enables team cloud only for team and enterprise', () => {
13
- assert.equal(planIncludesFeature('team', 'team_cloud'), true);
14
- assert.equal(planIncludesFeature('pro', 'team_cloud'), false);
15
- assert.equal(planIncludesFeature('enterprise', 'audit_events'), true);
17
+ (0, node_test_1.it)('enables team cloud only for team and enterprise', () => {
18
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('team', 'team_cloud'), true);
19
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('pro', 'team_cloud'), false);
20
+ strict_1.default.equal((0, plans_1.planIncludesFeature)('enterprise', 'audit_events'), true);
16
21
  });
17
- it('normalizes plan names case-insensitively', () => {
18
- assert.equal(normalizePlan('invalid'), 'free');
19
- assert.equal(normalizePlan('PRO'), 'pro');
20
- assert.equal(normalizePlan('Team'), 'team');
22
+ (0, node_test_1.it)('normalizes plan names case-insensitively', () => {
23
+ strict_1.default.equal((0, plans_1.normalizePlan)('invalid'), 'free');
24
+ strict_1.default.equal((0, plans_1.normalizePlan)('PRO'), 'pro');
25
+ strict_1.default.equal((0, plans_1.normalizePlan)('Team'), 'team');
21
26
  });
22
27
  });
23
28
  //# sourceMappingURL=plans.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.test.js","sourceRoot":"","sources":["../../src/auth/plans.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE7D,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"plans.test.js","sourceRoot":"","sources":["../../src/auth/plans.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAyC;AACzC,gEAAwC;AACxC,mCAA6D;AAE7D,IAAA,oBAAQ,EAAC,OAAO,EAAE,GAAG,EAAE;IACrB,IAAA,cAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QACzD,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7D,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,KAAK,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAmB,EAAC,YAAY,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,gBAAM,CAAC,KAAK,CAAC,IAAA,qBAAa,EAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/C,gBAAM,CAAC,KAAK,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,gBAAM,CAAC,KAAK,CAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}