vibestats 1.3.5 → 1.3.7

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 +31 -5
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2308,15 +2308,41 @@ function displayActivityStats(artifact, url, options) {
2308
2308
  }
2309
2309
 
2310
2310
  // src/share-client.ts
2311
+ var VIBESTATS_PUBLIC_HOST = "vibestats.wolfai.dev";
2312
+ var VIBESTATS_SHARE_API_ORIGIN = "https://api.wolfai.dev";
2311
2313
  function extractLegacyQuery(legacyUrl) {
2312
2314
  if (!legacyUrl) return null;
2313
2315
  const queryIndex = legacyUrl.indexOf("?");
2314
2316
  if (queryIndex === -1) return null;
2315
2317
  return legacyUrl.slice(queryIndex + 1) || null;
2316
2318
  }
2319
+ function resolveShareApiBaseUrl(baseUrl) {
2320
+ try {
2321
+ const parsed = new URL(baseUrl);
2322
+ if (parsed.hostname === VIBESTATS_PUBLIC_HOST) {
2323
+ return VIBESTATS_SHARE_API_ORIGIN;
2324
+ }
2325
+ return parsed.origin;
2326
+ } catch {
2327
+ return baseUrl;
2328
+ }
2329
+ }
2330
+ function normalizeHostedShareUrl(url, baseUrl) {
2331
+ try {
2332
+ const base = new URL(baseUrl);
2333
+ if (base.hostname !== VIBESTATS_PUBLIC_HOST) return url;
2334
+ const parsed = new URL(url);
2335
+ const apiHost = new URL(VIBESTATS_SHARE_API_ORIGIN).hostname;
2336
+ if (parsed.hostname !== apiHost) return url;
2337
+ const normalizedPath = parsed.pathname === "/vibestats" ? "/" : parsed.pathname.startsWith("/vibestats/") ? parsed.pathname.slice("/vibestats".length) : parsed.pathname;
2338
+ return `${base.origin}${normalizedPath}${parsed.search}${parsed.hash}`;
2339
+ } catch {
2340
+ return url;
2341
+ }
2342
+ }
2317
2343
  async function publishArtifact(artifact, baseUrl, legacyUrl) {
2318
2344
  try {
2319
- const apiUrl = new URL("/vibestats/shares", baseUrl);
2345
+ const apiUrl = new URL("/vibestats/shares", resolveShareApiBaseUrl(baseUrl));
2320
2346
  const response = await fetch(apiUrl.toString(), {
2321
2347
  method: "POST",
2322
2348
  headers: {
@@ -2334,9 +2360,9 @@ async function publishArtifact(artifact, baseUrl, legacyUrl) {
2334
2360
  return {
2335
2361
  id: data.id || data.slug,
2336
2362
  slug: data.slug,
2337
- url: data.url,
2338
- shortUrl: data.shortUrl,
2339
- imageUrl: data.imageUrl || null
2363
+ url: normalizeHostedShareUrl(data.url, baseUrl),
2364
+ shortUrl: normalizeHostedShareUrl(data.shortUrl, baseUrl),
2365
+ imageUrl: data.imageUrl ? normalizeHostedShareUrl(data.imageUrl, baseUrl) : null
2340
2366
  };
2341
2367
  } catch {
2342
2368
  return null;
@@ -2553,7 +2579,7 @@ async function publishArtifactWithFallback(artifact, baseUrl, fallbackUrl, prefe
2553
2579
  var main = defineCommand({
2554
2580
  meta: {
2555
2581
  name: "vibestats",
2556
- version: "1.3.2",
2582
+ version: "1.3.7",
2557
2583
  description: "AI coding stats - usage tracking and annual wrapped for Claude Code & Codex"
2558
2584
  },
2559
2585
  args: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibestats",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "description": "AI coding stats - usage tracking and annual wrapped for Claude Code & Codex",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",