@athletelog/cli 0.1.0-beta.1 → 0.1.0-beta.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 (2) hide show
  1. package/dist/index.js +20 -14
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -26,15 +26,21 @@ function readStored() {
26
26
  function toRequestBase(raw) {
27
27
  return raw.includes(".convex.cloud") ? raw.replace(".convex.cloud", ".convex.site") : raw;
28
28
  }
29
+ function literalResult(url) {
30
+ return { baseUrl: toRequestBase(url), env: url.includes(".convex.") ? "dev" : "unknown" };
31
+ }
32
+ function namedResult(named) {
33
+ return { baseUrl: toRequestBase(ENV_BASE_URLS[named] ?? ENV_BASE_URLS.prod), env: named };
34
+ }
29
35
  function resolveBaseUrl(o, stored) {
30
- const literal = o.url ?? process.env.ATHLETELOG_API_URL ?? stored.url ?? stored.convexUrl;
31
- if (literal) {
32
- const env = literal.includes(".convex.") ? "dev" : "unknown";
33
- return { baseUrl: toRequestBase(literal), env };
34
- }
35
- const named = o.env ?? process.env.ATHLETELOG_ENV ?? stored.env ?? "prod";
36
- const base = ENV_BASE_URLS[named] ?? ENV_BASE_URLS.prod;
37
- return { baseUrl: toRequestBase(base), env: named };
36
+ if (o.url) return literalResult(o.url);
37
+ if (o.env) return namedResult(o.env);
38
+ if (process.env.ATHLETELOG_API_URL) return literalResult(process.env.ATHLETELOG_API_URL);
39
+ if (process.env.ATHLETELOG_ENV) return namedResult(process.env.ATHLETELOG_ENV);
40
+ if (stored.url) return literalResult(stored.url);
41
+ if (stored.convexUrl) return literalResult(stored.convexUrl);
42
+ if (stored.env) return namedResult(stored.env);
43
+ return namedResult("prod");
38
44
  }
39
45
  function loadConfig(overrides = {}) {
40
46
  const stored = readStored();
@@ -195,7 +201,7 @@ async function apiRequest(baseUrl, path, opts) {
195
201
 
196
202
  // src/commands/athletes-list.ts
197
203
  async function runAthletesList(args) {
198
- const config = loadConfig();
204
+ const config = loadConfig({ url: args.url, env: args.env });
199
205
  const session = await createAuthSession(config);
200
206
  const athletes = await apiRequest(config.baseUrl, "/athletelog/v1/athletes", { token: session.getToken() });
201
207
  if (args.json) {
@@ -239,7 +245,7 @@ function toNumber(value) {
239
245
  return value;
240
246
  }
241
247
  async function runCheckinImport(args) {
242
- const config = loadConfig();
248
+ const config = loadConfig({ url: args.url, env: args.env });
243
249
  const session = await createAuthSession(config);
244
250
  const targetUserId = args.athlete;
245
251
  if (!existsSync2(args.file)) throw new Error(`File not found: ${args.file}`);
@@ -339,7 +345,7 @@ async function runLogin(args) {
339
345
 
340
346
  // src/commands/whoami.ts
341
347
  async function runWhoami(args) {
342
- const config = loadConfig();
348
+ const config = loadConfig({ url: args.url, env: args.env });
343
349
  const session = await createAuthSession(config);
344
350
  const me = await apiRequest(config.baseUrl, "/athletelog/v1/me", { token: session.getToken() });
345
351
  if (args.json) {
@@ -420,7 +426,7 @@ ${usageFor()}`);
420
426
  return;
421
427
  }
422
428
  if (group === "whoami") {
423
- await runWhoami({ json });
429
+ await runWhoami({ json, url: values.url, env });
424
430
  return;
425
431
  }
426
432
  if (group === "logout") {
@@ -428,14 +434,14 @@ ${usageFor()}`);
428
434
  return;
429
435
  }
430
436
  if (group === "athletes" && action === "list") {
431
- await runAthletesList({ json });
437
+ await runAthletesList({ json, url: values.url, env });
432
438
  return;
433
439
  }
434
440
  if (group === "checkin" && action === "import") {
435
441
  if (!values.athlete || !values.file) {
436
442
  throw new Error("checkin import requires --athlete and --file");
437
443
  }
438
- await runCheckinImport({ json, athlete: values.athlete, file: values.file });
444
+ await runCheckinImport({ json, athlete: values.athlete, file: values.file, url: values.url, env });
439
445
  return;
440
446
  }
441
447
  process.stderr.write(`Unknown command: ${group ?? ""} ${action ?? ""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athletelog/cli",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "athletelog": "./dist/index.js"