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.
- package/dist/index.js +31 -5
- 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
|
|
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.
|
|
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: {
|