@felan-ai/ext-powerline 0.3.2 → 0.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../src/segments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,yBAAyB,IAAI,MAAM,CAAC;IACpC,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,gBAAgB,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAaD,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,GAAG,eAAe,EAAE,CAWxG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD"}
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../src/segments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,yBAAyB,IAAI,MAAM,CAAC;IACpC,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,gBAAgB,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAaD,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,GAAG,eAAe,EAAE,CAWxG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD"}
package/dist/segments.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { formatReset, prioritizeWindowsForModel, } from './subscription.js';
1
2
  import { BAR_LEVELS } from './symbols.js';
2
3
  const ANSI_PATTERN = /\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g;
3
4
  const EXTENSION_STATUS_COLORS = ['extensionStatus1', 'extensionStatus2', 'extensionStatus3', 'extensionStatus4'];
@@ -40,6 +41,7 @@ function renderSegment(name, config, context) {
40
41
  case 'git': return renderGit(config, context);
41
42
  case 'model': return renderModel(context);
42
43
  case 'session': return renderSession(config, context);
44
+ case 'subscription': return renderSubscription(config, context);
43
45
  case 'context': return renderContext(config, context);
44
46
  case 'status': return renderStatus(context);
45
47
  }
@@ -108,6 +110,43 @@ function renderSession(config, context) {
108
110
  : tokenText;
109
111
  return { name: 'session', colorKey: 'session', text };
110
112
  }
113
+ function renderSubscription(config, context) {
114
+ const provider = context.subscription.provider;
115
+ if (!provider)
116
+ return undefined;
117
+ const label = getSubscriptionProviderLabel(provider);
118
+ const usage = context.subscription.usage;
119
+ if (context.subscription.loading && (!usage || usage.windows.length === 0)) {
120
+ return { name: 'subscription', colorKey: 'subscription', text: sanitizePlainText(`${label} …`) };
121
+ }
122
+ if (!usage)
123
+ return undefined;
124
+ if (usage.error?.code === 'NO_CREDENTIALS') {
125
+ return { name: 'subscription', colorKey: 'warning', text: sanitizePlainText(`${label} no OAuth`) };
126
+ }
127
+ const maxWindows = clampInteger(config.maxWindows ?? 3, 1, 8);
128
+ const windows = prioritizeWindowsForModel(usage.windows, context.ctx.model)
129
+ .filter((window) => !isCodexModelSpecificWindow(provider, window))
130
+ .slice(0, maxWindows);
131
+ if (windows.length === 0) {
132
+ if (!usage.error)
133
+ return undefined;
134
+ return {
135
+ name: 'subscription',
136
+ colorKey: 'warning',
137
+ text: sanitizePlainText(`${label} ${formatSubscriptionError(usage.error)}`),
138
+ };
139
+ }
140
+ const parts = windows.map((window) => formatSubscriptionWindow(provider, window, config)).filter(Boolean);
141
+ const text = [config.showProviderName ?? true ? label : '', parts.join(' * ')].filter(Boolean).join(' ');
142
+ if (!text.trim())
143
+ return undefined;
144
+ return {
145
+ name: 'subscription',
146
+ colorKey: usage.error ? 'warning' : 'subscription',
147
+ text: sanitizePlainText(text),
148
+ };
149
+ }
111
150
  function renderContext(config, context) {
112
151
  const usage = context.ctx.getContextUsage();
113
152
  const contextWindow = usage?.contextWindow ?? context.ctx.model?.contextWindow;
@@ -153,6 +192,61 @@ function renderStatus(context) {
153
192
  text,
154
193
  }));
155
194
  }
195
+ function getSubscriptionProviderLabel(provider) {
196
+ return provider === 'codex' ? 'Codex' : 'Claude';
197
+ }
198
+ function formatSubscriptionWindow(provider, window, config) {
199
+ return provider === 'codex'
200
+ ? formatCompactSubscriptionWindow(window, config, 100 - window.usedPercent)
201
+ : formatAnthropicWindow(window, config);
202
+ }
203
+ function formatAnthropicWindow(window, config) {
204
+ if (window.label.toLowerCase().startsWith('extra [')) {
205
+ const reset = config.showReset ?? true ? formatWindowReset(window) : undefined;
206
+ return reset ? `${window.label} | ${reset}` : window.label;
207
+ }
208
+ return formatCompactSubscriptionWindow(window, config, window.usedPercent);
209
+ }
210
+ function formatCompactSubscriptionWindow(window, config, percent) {
211
+ const parts = [formatSubscriptionLabel(window.label)];
212
+ if (config.showPercentage ?? true)
213
+ parts.push(`${Math.round(clamp(percent, 0, 100))}%`);
214
+ const text = parts.join(' ');
215
+ const reset = config.showReset ?? true ? formatWindowReset(window) : undefined;
216
+ return reset ? `${text} | ${reset}` : text;
217
+ }
218
+ function formatSubscriptionLabel(label) {
219
+ const normalized = normalizeCodexWindowLabel(label);
220
+ if (normalized === 'Week')
221
+ return '7d';
222
+ if (normalized === 'Day')
223
+ return '24h';
224
+ return normalized;
225
+ }
226
+ function formatWindowReset(window) {
227
+ if (window.resetDescription === '__ACTIVE__')
228
+ return undefined;
229
+ if (window.resetAt) {
230
+ const resetAt = new Date(window.resetAt);
231
+ if (Number.isFinite(resetAt.getTime()))
232
+ return formatReset(resetAt);
233
+ }
234
+ return window.resetDescription;
235
+ }
236
+ function isCodexModelSpecificWindow(provider, window) {
237
+ return provider === 'codex' && normalizeCodexWindowLabel(window.label) !== window.label;
238
+ }
239
+ function normalizeCodexWindowLabel(label) {
240
+ return label.match(/(?:^| )(5h|\d+h|Day|Week)$/)?.[1] ?? label;
241
+ }
242
+ function formatSubscriptionError(error) {
243
+ if (error.code === 'HTTP_ERROR' && error.httpStatus)
244
+ return `HTTP ${error.httpStatus}`;
245
+ return 'fetch failed';
246
+ }
247
+ function clampInteger(value, min, max) {
248
+ return Math.min(max, Math.max(min, Math.round(value)));
249
+ }
156
250
  function getUsageTotals(context) {
157
251
  const totals = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0 };
158
252
  for (const entry of context.sessionManager.getEntries()) {
@@ -1 +1 @@
1
- {"version":3,"file":"segments.js","sourceRoot":"","sources":["../src/segments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segments.js","sourceRoot":"","sources":["../src/segments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ export type SubscriptionProviderName = 'codex' | 'anthropic';
2
+ export type UsageErrorCode = 'NO_CREDENTIALS' | 'FETCH_FAILED' | 'HTTP_ERROR';
3
+ export interface RateWindow {
4
+ label: string;
5
+ usedPercent: number;
6
+ resetDescription?: string;
7
+ resetAt?: string;
8
+ }
9
+ export interface UsageError {
10
+ code: UsageErrorCode;
11
+ message: string;
12
+ httpStatus?: number;
13
+ }
14
+ export interface UsageSnapshot {
15
+ provider: SubscriptionProviderName;
16
+ displayName: string;
17
+ windows: RateWindow[];
18
+ extraUsageEnabled?: boolean;
19
+ fiveHourUsage?: number;
20
+ lastSuccessAt?: number;
21
+ error?: UsageError;
22
+ }
23
+ export interface SubscriptionState {
24
+ provider?: SubscriptionProviderName;
25
+ usage?: UsageSnapshot;
26
+ loading: boolean;
27
+ lastRefreshAt?: number;
28
+ }
29
+ export interface SubscriptionUsageHostRequest {
30
+ readonly provider: SubscriptionProviderName;
31
+ readonly modelProvider: string;
32
+ readonly signal: AbortSignal;
33
+ }
34
+ export type SubscriptionUsageHostResult = {
35
+ readonly ok: true;
36
+ readonly data: unknown;
37
+ } | {
38
+ readonly ok: false;
39
+ readonly error: {
40
+ readonly code: UsageErrorCode;
41
+ readonly httpStatus?: number;
42
+ };
43
+ };
44
+ export interface SubscriptionUsageHost {
45
+ fetchUsage(request: SubscriptionUsageHostRequest): Promise<SubscriptionUsageHostResult>;
46
+ }
47
+ export interface SubscriptionRefreshOptions {
48
+ force?: boolean;
49
+ allowStaleCache?: boolean;
50
+ resetProvider?: boolean;
51
+ }
52
+ export interface SubscriptionController {
53
+ readonly state: SubscriptionState;
54
+ refresh(model: {
55
+ provider?: string;
56
+ id?: string;
57
+ } | undefined, options?: SubscriptionRefreshOptions): Promise<void>;
58
+ clear(): void;
59
+ }
60
+ export declare function createSubscriptionController(host: SubscriptionUsageHost, onUpdate?: () => void): SubscriptionController;
61
+ export declare function detectSubscriptionProvider(model: {
62
+ provider?: string;
63
+ id?: string;
64
+ } | undefined): SubscriptionProviderName | undefined;
65
+ export declare function parseUsageSnapshot(provider: SubscriptionProviderName, data: unknown): UsageSnapshot;
66
+ export declare function formatReset(date: Date): string;
67
+ export declare function normalizeTokens(value: string): string[];
68
+ export declare function prioritizeWindowsForModel(windows: RateWindow[], model?: {
69
+ id?: string;
70
+ } | null): RateWindow[];
71
+ //# sourceMappingURL=subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,361 @@
1
+ const API_TIMEOUT_MS = 5_000;
2
+ const MIN_REFRESH_INTERVAL_MS = 10_000;
3
+ const DISPLAY_NAMES = {
4
+ codex: 'Codex Plan',
5
+ anthropic: 'Claude Plan',
6
+ };
7
+ export function createSubscriptionController(host, onUpdate) {
8
+ const state = { loading: false };
9
+ const cache = {};
10
+ const lastAttemptAt = {};
11
+ const latestRequestSequence = {};
12
+ const activeRequests = new Set();
13
+ let inFlightProvider;
14
+ let inFlight;
15
+ let inFlightSequence;
16
+ let sequence = 0;
17
+ function notify() {
18
+ onUpdate?.();
19
+ }
20
+ function setCurrentProvider(provider, options) {
21
+ const providerChanged = state.provider !== provider;
22
+ state.provider = provider;
23
+ if (providerChanged || options.resetProvider) {
24
+ const stale = options.allowStaleCache ? cache[provider] : undefined;
25
+ if (stale)
26
+ state.usage = stale;
27
+ else
28
+ delete state.usage;
29
+ }
30
+ else if (!state.usage && cache[provider]) {
31
+ state.usage = cache[provider];
32
+ }
33
+ }
34
+ async function refresh(model, options = {}) {
35
+ const provider = detectSubscriptionProvider(model);
36
+ if (!provider) {
37
+ sequence += 1;
38
+ abortActiveRequests();
39
+ delete latestRequestSequence.codex;
40
+ delete latestRequestSequence.anthropic;
41
+ delete state.provider;
42
+ delete state.usage;
43
+ state.loading = false;
44
+ notify();
45
+ return;
46
+ }
47
+ const previousProvider = state.provider;
48
+ if (previousProvider && previousProvider !== provider) {
49
+ abortActiveRequests();
50
+ delete latestRequestSequence[previousProvider];
51
+ }
52
+ setCurrentProvider(provider, options);
53
+ if (inFlight && inFlightProvider === provider && inFlightSequence === sequence) {
54
+ state.loading = true;
55
+ notify();
56
+ return inFlight;
57
+ }
58
+ const requestSequence = ++sequence;
59
+ state.loading = !state.usage;
60
+ notify();
61
+ const now = Date.now();
62
+ const previousAttempt = lastAttemptAt[provider];
63
+ if (!options.force && previousAttempt && now - previousAttempt < MIN_REFRESH_INTERVAL_MS) {
64
+ state.loading = false;
65
+ notify();
66
+ return;
67
+ }
68
+ lastAttemptAt[provider] = now;
69
+ latestRequestSequence[provider] = requestSequence;
70
+ state.loading = true;
71
+ notify();
72
+ const controller = new AbortController();
73
+ activeRequests.add(controller);
74
+ const promise = fetchAndCommit(provider, model?.provider ?? '', requestSequence, controller).finally(() => {
75
+ activeRequests.delete(controller);
76
+ if (inFlight === promise) {
77
+ inFlight = undefined;
78
+ inFlightProvider = undefined;
79
+ inFlightSequence = undefined;
80
+ }
81
+ if (state.provider === provider && sequence === requestSequence) {
82
+ state.loading = false;
83
+ notify();
84
+ }
85
+ });
86
+ inFlight = promise;
87
+ inFlightProvider = provider;
88
+ inFlightSequence = requestSequence;
89
+ return promise;
90
+ }
91
+ async function fetchAndCommit(provider, modelProvider, requestSequence, controller) {
92
+ const result = await fetchHostUsage(host, provider, modelProvider, controller);
93
+ const fetched = result.ok
94
+ ? parseUsageSnapshot(provider, result.data)
95
+ : emptySnapshot(provider, usageError(result.error.code, result.error.httpStatus));
96
+ const displaySnapshot = withFallbackForFetchFailure(fetched, cache[provider]);
97
+ if (!fetched.error && latestRequestSequence[provider] === requestSequence) {
98
+ cache[provider] = displaySnapshot;
99
+ }
100
+ if (state.provider === provider && sequence === requestSequence) {
101
+ state.usage = displaySnapshot;
102
+ state.lastRefreshAt = Date.now();
103
+ notify();
104
+ }
105
+ }
106
+ function clear() {
107
+ sequence += 1;
108
+ abortActiveRequests();
109
+ delete state.provider;
110
+ delete state.usage;
111
+ state.loading = false;
112
+ delete state.lastRefreshAt;
113
+ delete cache.codex;
114
+ delete cache.anthropic;
115
+ delete lastAttemptAt.codex;
116
+ delete lastAttemptAt.anthropic;
117
+ delete latestRequestSequence.codex;
118
+ delete latestRequestSequence.anthropic;
119
+ inFlight = undefined;
120
+ inFlightProvider = undefined;
121
+ inFlightSequence = undefined;
122
+ notify();
123
+ }
124
+ function abortActiveRequests() {
125
+ for (const controller of activeRequests)
126
+ controller.abort();
127
+ inFlight = undefined;
128
+ inFlightProvider = undefined;
129
+ inFlightSequence = undefined;
130
+ }
131
+ return { state, refresh, clear };
132
+ }
133
+ export function detectSubscriptionProvider(model) {
134
+ if (!model)
135
+ return undefined;
136
+ const provider = model.provider?.toLowerCase() ?? '';
137
+ const id = model.id?.toLowerCase() ?? '';
138
+ if (provider.includes('openai-codex')
139
+ || provider.includes('codex')
140
+ || id.includes('openai-codex')
141
+ || id.includes('codex'))
142
+ return 'codex';
143
+ if (provider.includes('anthropic') || id.includes('claude'))
144
+ return 'anthropic';
145
+ return undefined;
146
+ }
147
+ export function parseUsageSnapshot(provider, data) {
148
+ return provider === 'codex' ? parseCodexUsage(data) : parseAnthropicUsage(data);
149
+ }
150
+ async function fetchHostUsage(host, provider, modelProvider, controller) {
151
+ const timeoutId = setTimeout(() => controller.abort(), API_TIMEOUT_MS);
152
+ try {
153
+ return await host.fetchUsage({ provider, modelProvider, signal: controller.signal });
154
+ }
155
+ catch {
156
+ return { ok: false, error: { code: 'FETCH_FAILED' } };
157
+ }
158
+ finally {
159
+ clearTimeout(timeoutId);
160
+ }
161
+ }
162
+ function parseCodexUsage(data) {
163
+ const root = isRecord(data) ? data : {};
164
+ const windows = [];
165
+ addCodexRateWindows(windows, asCodexRateLimit(root.rate_limit));
166
+ if (Array.isArray(root.additional_rate_limits)) {
167
+ for (const entry of root.additional_rate_limits) {
168
+ if (!isRecord(entry))
169
+ continue;
170
+ const prefix = getNonEmptyString(entry.limit_name)
171
+ ?? getNonEmptyString(entry.metered_feature)
172
+ ?? 'Additional';
173
+ addCodexRateWindows(windows, asCodexRateLimit(entry.rate_limit), prefix);
174
+ }
175
+ }
176
+ return snapshot('codex', { windows });
177
+ }
178
+ function parseAnthropicUsage(data) {
179
+ const root = (isRecord(data) ? data : {});
180
+ const windows = [];
181
+ const fiveHourUsage = clampPercent(root.five_hour?.utilization ?? 0);
182
+ if (typeof root.five_hour?.utilization === 'number') {
183
+ const resetAt = parseDate(root.five_hour.resets_at);
184
+ windows.push({
185
+ label: '5h',
186
+ usedPercent: fiveHourUsage,
187
+ ...(resetAt ? { resetDescription: formatReset(resetAt), resetAt: resetAt.toISOString() } : {}),
188
+ });
189
+ }
190
+ if (typeof root.seven_day?.utilization === 'number') {
191
+ const resetAt = parseDate(root.seven_day.resets_at);
192
+ windows.push({
193
+ label: 'Week',
194
+ usedPercent: clampPercent(root.seven_day.utilization),
195
+ ...(resetAt ? { resetDescription: formatReset(resetAt), resetAt: resetAt.toISOString() } : {}),
196
+ });
197
+ }
198
+ const extraUsageEnabled = root.extra_usage?.is_enabled === true;
199
+ if (extraUsageEnabled) {
200
+ const extra = root.extra_usage;
201
+ const status = fiveHourUsage >= 99 ? 'active' : 'on';
202
+ windows.push({
203
+ label: formatExtraUsageLabel(status, extra.used_credits, extra.monthly_limit),
204
+ usedPercent: clampPercent(extra.utilization ?? 0),
205
+ ...(status === 'active' ? { resetDescription: '__ACTIVE__' } : {}),
206
+ });
207
+ }
208
+ return snapshot('anthropic', { windows, extraUsageEnabled, fiveHourUsage });
209
+ }
210
+ function asCodexRateLimit(value) {
211
+ if (!isRecord(value))
212
+ return undefined;
213
+ return {
214
+ ...(isRecord(value.primary_window) ? { primary_window: value.primary_window } : {}),
215
+ ...(isRecord(value.secondary_window) ? { secondary_window: value.secondary_window } : {}),
216
+ };
217
+ }
218
+ function addCodexRateWindows(windows, rateLimit, prefix) {
219
+ pushCodexWindow(windows, prefix, rateLimit?.primary_window, 10_800);
220
+ pushCodexWindow(windows, prefix, rateLimit?.secondary_window, 86_400);
221
+ }
222
+ function pushCodexWindow(windows, prefix, window, fallbackWindowSeconds) {
223
+ if (!window)
224
+ return;
225
+ const resetDate = getCodexResetDate(window);
226
+ const label = getWindowLabel(window.limit_window_seconds, fallbackWindowSeconds);
227
+ windows.push({
228
+ label: prefix ? `${prefix} ${label}` : label,
229
+ usedPercent: clampPercent(window.used_percent ?? 0),
230
+ ...(resetDate ? { resetDescription: formatReset(resetDate), resetAt: resetDate.toISOString() } : {}),
231
+ });
232
+ }
233
+ function getCodexResetDate(window) {
234
+ if (typeof window.reset_at === 'number' && Number.isFinite(window.reset_at) && window.reset_at > 0) {
235
+ return new Date(window.reset_at * 1_000);
236
+ }
237
+ if (typeof window.reset_after_seconds === 'number'
238
+ && Number.isFinite(window.reset_after_seconds)
239
+ && window.reset_after_seconds > 0)
240
+ return new Date(Date.now() + window.reset_after_seconds * 1_000);
241
+ return undefined;
242
+ }
243
+ function getWindowLabel(windowSeconds, fallbackWindowSeconds) {
244
+ const safeWindowSeconds = typeof windowSeconds === 'number' && windowSeconds > 0
245
+ ? windowSeconds
246
+ : typeof fallbackWindowSeconds === 'number' && fallbackWindowSeconds > 0
247
+ ? fallbackWindowSeconds
248
+ : 0;
249
+ if (!safeWindowSeconds)
250
+ return '0h';
251
+ const hours = Math.round(safeWindowSeconds / 3_600);
252
+ if (hours >= 144)
253
+ return 'Week';
254
+ if (hours >= 24)
255
+ return 'Day';
256
+ return `${hours}h`;
257
+ }
258
+ function formatExtraUsageLabel(status, usedCredits, monthlyLimit) {
259
+ const label = `Extra [${status}]`;
260
+ const used = typeof usedCredits === 'number' && Number.isFinite(usedCredits) ? usedCredits : undefined;
261
+ const limit = typeof monthlyLimit === 'number' && Number.isFinite(monthlyLimit) && monthlyLimit > 0
262
+ ? monthlyLimit
263
+ : undefined;
264
+ if (used === undefined)
265
+ return label;
266
+ if (limit)
267
+ return `${label} ${formatCredits(used)}/${formatCredits(limit)}`;
268
+ return `${label} ${formatCredits(used)}`;
269
+ }
270
+ function formatCredits(credits) {
271
+ return `$${(credits / 100).toFixed(2)}`;
272
+ }
273
+ function withFallbackForFetchFailure(fetched, fallback) {
274
+ const now = Date.now();
275
+ if (!fetched.error)
276
+ return { ...fetched, lastSuccessAt: now };
277
+ if (fetched.error.code !== 'NO_CREDENTIALS' && fallback?.windows.length) {
278
+ return { ...fallback, error: fetched.error };
279
+ }
280
+ return fetched;
281
+ }
282
+ function snapshot(provider, data) {
283
+ return { provider, displayName: DISPLAY_NAMES[provider], windows: [], ...data };
284
+ }
285
+ function emptySnapshot(provider, error) {
286
+ return snapshot(provider, { error });
287
+ }
288
+ function usageError(code, httpStatus) {
289
+ if (code === 'NO_CREDENTIALS')
290
+ return { code, message: 'No OAuth credentials found' };
291
+ if (code === 'HTTP_ERROR') {
292
+ return {
293
+ code,
294
+ message: httpStatus === undefined ? 'HTTP request failed' : `HTTP ${httpStatus}`,
295
+ ...(httpStatus === undefined ? {} : { httpStatus }),
296
+ };
297
+ }
298
+ return { code, message: 'Fetch failed' };
299
+ }
300
+ export function formatReset(date) {
301
+ const diffMs = date.getTime() - Date.now();
302
+ if (!Number.isFinite(diffMs) || diffMs < 0)
303
+ return 'now';
304
+ const diffMins = Math.floor(diffMs / 60_000);
305
+ if (diffMins < 60)
306
+ return `${diffMins}m`;
307
+ const hours = Math.floor(diffMins / 60);
308
+ const mins = diffMins % 60;
309
+ if (hours < 24)
310
+ return mins > 0 ? `${hours}h${mins}m` : `${hours}h`;
311
+ const days = Math.floor(hours / 24);
312
+ const remHours = hours % 24;
313
+ return remHours > 0 ? `${days}d${remHours}h` : `${days}d`;
314
+ }
315
+ export function normalizeTokens(value) {
316
+ return value
317
+ .toLowerCase()
318
+ .replace(/[^a-z0-9]+/g, ' ')
319
+ .trim()
320
+ .split(' ')
321
+ .filter(Boolean);
322
+ }
323
+ export function prioritizeWindowsForModel(windows, model) {
324
+ if (!model?.id || windows.length <= 1)
325
+ return windows;
326
+ const modelTokens = normalizeTokens(model.id);
327
+ if (modelTokens.length === 0)
328
+ return windows;
329
+ const matched = [];
330
+ const rest = [];
331
+ for (const window of windows) {
332
+ const labelTokens = normalizeTokens(window.label);
333
+ const isMatch = modelTokens.every((token) => labelTokens.includes(token))
334
+ && modelTokens.length * 2 > labelTokens.length;
335
+ if (isMatch)
336
+ matched.push(window);
337
+ else
338
+ rest.push(window);
339
+ }
340
+ if (matched.length === 0 || matched.length === windows.length)
341
+ return windows;
342
+ return [...matched, ...rest];
343
+ }
344
+ function parseDate(value) {
345
+ if (!value)
346
+ return undefined;
347
+ const date = new Date(value);
348
+ return Number.isFinite(date.getTime()) ? date : undefined;
349
+ }
350
+ function clampPercent(value) {
351
+ if (!Number.isFinite(value))
352
+ return 0;
353
+ return Math.min(100, Math.max(0, value));
354
+ }
355
+ function getNonEmptyString(value) {
356
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
357
+ }
358
+ function isRecord(value) {
359
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
360
+ }
361
+ //# sourceMappingURL=subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}