mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-10-05 20:28:23 +00:00
latest
This commit is contained in:
+189
-1
File diff suppressed because one or more lines are too long
+189
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,726 @@
|
||||
'use strict';
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[255],
|
||||
{
|
||||
2738: (e, t, r) => {
|
||||
r.d(t, {
|
||||
BT: () => d,
|
||||
Wu: () => l,
|
||||
ZB: () => s,
|
||||
Zp: () => a,
|
||||
aR: () => n,
|
||||
wL: () => p,
|
||||
});
|
||||
var i = r(3422);
|
||||
r(4398);
|
||||
var o = r(9183);
|
||||
function a(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'card',
|
||||
className: (0, o.cn)(
|
||||
'bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm',
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function n(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'card-header',
|
||||
className: (0, o.cn)(
|
||||
'@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function s(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'card-title',
|
||||
className: (0, o.cn)('leading-none font-semibold', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function d(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'card-description',
|
||||
className: (0, o.cn)('text-muted-foreground text-sm', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function l(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'card-content',
|
||||
className: (0, o.cn)('px-6', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function p(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'card-footer',
|
||||
className: (0, o.cn)('flex items-center px-6 [.border-t]:pt-6', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
},
|
||||
3130: (e, t, r) => {
|
||||
r.d(t, { J: () => n });
|
||||
var i = r(3422);
|
||||
r(4398);
|
||||
var o = r(2996),
|
||||
a = r(9183);
|
||||
function n(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)(o.b, {
|
||||
'data-slot': 'label',
|
||||
className: (0, a.cn)(
|
||||
'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
},
|
||||
6839: (e, t, r) => {
|
||||
r.d(t, { Xi: () => d, av: () => l, j7: () => s, tU: () => n });
|
||||
var i = r(3422);
|
||||
r(4398);
|
||||
var o = r(1749),
|
||||
a = r(9183);
|
||||
function n(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)(o.bL, {
|
||||
'data-slot': 'tabs',
|
||||
className: (0, a.cn)('flex flex-col gap-2', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function s(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)(o.B8, {
|
||||
'data-slot': 'tabs-list',
|
||||
className: (0, a.cn)(
|
||||
'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]',
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function d(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)(o.l9, {
|
||||
'data-slot': 'tabs-trigger',
|
||||
className: (0, a.cn)(
|
||||
"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function l(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)(o.UC, {
|
||||
'data-slot': 'tabs-content',
|
||||
className: (0, a.cn)('flex-1 outline-none', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
},
|
||||
8561: (e, t, r) => {
|
||||
r.d(t, { E: () => s });
|
||||
var i = r(3422);
|
||||
r(4398);
|
||||
var o = r(4676),
|
||||
a = r(9183);
|
||||
let n = (0, o.F)(
|
||||
'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
default:
|
||||
'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',
|
||||
secondary:
|
||||
'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
||||
destructive:
|
||||
'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',
|
||||
outline: 'text-foreground',
|
||||
success:
|
||||
'border-transparent bg-green-500 text-white hover:bg-green-500/80',
|
||||
warning:
|
||||
'border-transparent bg-yellow-500 text-white hover:bg-yellow-500/80',
|
||||
error:
|
||||
'border-transparent bg-red-500 text-white hover:bg-red-500/80',
|
||||
},
|
||||
},
|
||||
defaultVariants: { variant: 'default' },
|
||||
}
|
||||
);
|
||||
function s(e) {
|
||||
let { className: t, variant: r, ...o } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
className: (0, a.cn)(n({ variant: r }), t),
|
||||
...o,
|
||||
});
|
||||
}
|
||||
},
|
||||
9119: (e, t, r) => {
|
||||
r.d(t, { zQ: () => d });
|
||||
var i = r(7916),
|
||||
o = r(9945);
|
||||
(o.Ik({
|
||||
id: o.ai(),
|
||||
provider_type: o.Yj(),
|
||||
base_url: o.Yj(),
|
||||
api_key: o.Yj().optional(),
|
||||
api_version: o.Yj().nullable().optional(),
|
||||
enabled: o.zM(),
|
||||
provider_fee: o.ai().optional(),
|
||||
}),
|
||||
o.Ik({
|
||||
provider_type: o.Yj(),
|
||||
base_url: o.Yj(),
|
||||
api_key: o.Yj(),
|
||||
api_version: o.Yj().nullable().optional(),
|
||||
enabled: o.zM().default(!0),
|
||||
provider_fee: o.ai().optional(),
|
||||
}),
|
||||
o.Ik({
|
||||
provider_type: o.Yj().optional(),
|
||||
base_url: o.Yj().optional(),
|
||||
api_key: o.Yj().optional(),
|
||||
api_version: o.Yj().nullable().optional(),
|
||||
enabled: o.zM().optional(),
|
||||
provider_fee: o.ai().optional(),
|
||||
}));
|
||||
let a = o.Ik({
|
||||
prompt: o.ai().optional(),
|
||||
completion: o.ai().optional(),
|
||||
request: o.ai().optional(),
|
||||
image: o.ai().optional(),
|
||||
web_search: o.ai().optional(),
|
||||
internal_reasoning: o.ai().optional(),
|
||||
}),
|
||||
n = o.Ik({
|
||||
modality: o.Yj().optional(),
|
||||
input_modalities: o.YO(o.Yj()).optional(),
|
||||
output_modalities: o.YO(o.Yj()).optional(),
|
||||
tokenizer: o.Yj().optional(),
|
||||
instruct_type: o.Yj().nullable().optional(),
|
||||
}),
|
||||
s = o.Ik({
|
||||
id: o.Yj(),
|
||||
name: o.Yj(),
|
||||
description: o.Yj(),
|
||||
created: o.ai(),
|
||||
context_length: o.ai(),
|
||||
architecture: n.or(o.g1(o.bz())),
|
||||
pricing: a.or(o.g1(o.bz())),
|
||||
per_request_limits: o.g1(o.bz()).nullable().optional(),
|
||||
top_provider: o.g1(o.bz()).nullable().optional(),
|
||||
upstream_provider_id: o.ai().nullable().optional(),
|
||||
enabled: o.zM().default(!0),
|
||||
});
|
||||
o.Ik({
|
||||
provider: o.Ik({ id: o.ai(), provider_type: o.Yj(), base_url: o.Yj() }),
|
||||
db_models: o.YO(s),
|
||||
remote_models: o.YO(s),
|
||||
});
|
||||
class d {
|
||||
static convertPricingToPerMillionTokens(e) {
|
||||
if (!e) return e;
|
||||
let t = { ...e };
|
||||
return (
|
||||
'number' == typeof t.prompt && (t.prompt = 1e6 * t.prompt),
|
||||
'number' == typeof t.completion &&
|
||||
(t.completion = 1e6 * t.completion),
|
||||
'number' == typeof t.request && (t.request = 1e6 * t.request),
|
||||
'number' == typeof t.image && (t.image = 1e6 * t.image),
|
||||
t
|
||||
);
|
||||
}
|
||||
static convertPricingToPerToken(e) {
|
||||
if (!e) return e;
|
||||
let t = { ...e };
|
||||
return (
|
||||
'number' == typeof t.prompt && (t.prompt = t.prompt / 1e6),
|
||||
'number' == typeof t.completion &&
|
||||
(t.completion = t.completion / 1e6),
|
||||
'number' == typeof t.request && (t.request = t.request / 1e6),
|
||||
'number' == typeof t.image && (t.image = t.image / 1e6),
|
||||
t
|
||||
);
|
||||
}
|
||||
static transformAdminModelToModel(e, t) {
|
||||
var r, i;
|
||||
let o = this.convertPricingToPerMillionTokens(e.pricing),
|
||||
a = (null == o ? void 0 : o.prompt) || 0,
|
||||
n = (null == o ? void 0 : o.completion) || 0,
|
||||
s = (null == o ? void 0 : o.request) || 0;
|
||||
return {
|
||||
id: e.id,
|
||||
name: e.name,
|
||||
full_name: e.name,
|
||||
description: e.description,
|
||||
modelType:
|
||||
(null == (r = e.architecture) ? void 0 : r.modality) || 'text',
|
||||
isEnabled: e.enabled,
|
||||
createdAt: new Date(1e3 * e.created).toISOString(),
|
||||
updatedAt: new Date(1e3 * e.created).toISOString(),
|
||||
provider: t || 'Unknown',
|
||||
url: '',
|
||||
api_key: void 0,
|
||||
input_cost: a,
|
||||
output_cost: n,
|
||||
min_cost_per_request: s,
|
||||
min_cash_per_request: 0,
|
||||
contextLength: e.context_length,
|
||||
apiKeyRequired: !0,
|
||||
provider_id:
|
||||
null == (i = e.upstream_provider_id) ? void 0 : i.toString(),
|
||||
is_free: 0 === a && 0 === n,
|
||||
soft_deleted: !e.enabled,
|
||||
has_own_api_key: !1,
|
||||
api_key_type: 'group',
|
||||
};
|
||||
}
|
||||
static transformModelToAdminModel(e) {
|
||||
let t = this.convertPricingToPerToken({
|
||||
prompt: e.input_cost,
|
||||
completion: e.output_cost,
|
||||
request: e.min_cost_per_request,
|
||||
image: 0,
|
||||
web_search: 0,
|
||||
internal_reasoning: 0,
|
||||
});
|
||||
return {
|
||||
id: e.id,
|
||||
name: e.name,
|
||||
description: e.description || '',
|
||||
created: Math.floor(new Date(e.createdAt).getTime() / 1e3),
|
||||
context_length: e.contextLength || 0,
|
||||
architecture: {
|
||||
modality: e.modelType,
|
||||
input_modalities: [e.modelType],
|
||||
output_modalities: [e.modelType],
|
||||
tokenizer: '',
|
||||
instruct_type: null,
|
||||
},
|
||||
pricing: t,
|
||||
per_request_limits: null,
|
||||
top_provider: null,
|
||||
upstream_provider_id: e.provider_id
|
||||
? parseInt(e.provider_id)
|
||||
: null,
|
||||
enabled: e.isEnabled,
|
||||
};
|
||||
}
|
||||
static async getUpstreamProviders() {
|
||||
return await i.apiClient.get('/admin/api/upstream-providers');
|
||||
}
|
||||
static async getUpstreamProvider(e) {
|
||||
return await i.apiClient.get(
|
||||
'/admin/api/upstream-providers/'.concat(e)
|
||||
);
|
||||
}
|
||||
static async createUpstreamProvider(e) {
|
||||
return await i.apiClient.post('/admin/api/upstream-providers', e);
|
||||
}
|
||||
static async updateUpstreamProvider(e, t) {
|
||||
return await i.apiClient.patch(
|
||||
'/admin/api/upstream-providers/'.concat(e),
|
||||
t
|
||||
);
|
||||
}
|
||||
static async deleteUpstreamProvider(e) {
|
||||
return await i.apiClient.delete(
|
||||
'/admin/api/upstream-providers/'.concat(e)
|
||||
);
|
||||
}
|
||||
static async getProviderModels(e) {
|
||||
return await i.apiClient.get(
|
||||
'/admin/api/upstream-providers/'.concat(e, '/models')
|
||||
);
|
||||
}
|
||||
static async createProviderModel(e, t) {
|
||||
let r = { ...t, pricing: this.convertPricingToPerToken(t.pricing) };
|
||||
console.log('Creating provider model - pricing conversion:', {
|
||||
original: t.pricing,
|
||||
converted: r.pricing,
|
||||
});
|
||||
let o = await i.apiClient.post(
|
||||
'/admin/api/upstream-providers/'.concat(e, '/models'),
|
||||
r
|
||||
);
|
||||
return {
|
||||
...o,
|
||||
pricing: this.convertPricingToPerMillionTokens(o.pricing),
|
||||
};
|
||||
}
|
||||
static async getProviderModel(e, t) {
|
||||
let r = await i.apiClient.get(
|
||||
'/admin/api/upstream-providers/'
|
||||
.concat(e, '/models/')
|
||||
.concat(encodeURIComponent(t))
|
||||
);
|
||||
return {
|
||||
...r,
|
||||
pricing: this.convertPricingToPerMillionTokens(r.pricing),
|
||||
};
|
||||
}
|
||||
static async getModel(e) {
|
||||
let t =
|
||||
arguments.length > 1 && void 0 !== arguments[1]
|
||||
? arguments[1]
|
||||
: null,
|
||||
r = await i.apiClient.post('/admin/api/models/get', {
|
||||
model_id: e,
|
||||
provider_id: t,
|
||||
});
|
||||
return {
|
||||
...r,
|
||||
pricing: this.convertPricingToPerMillionTokens(r.pricing),
|
||||
};
|
||||
}
|
||||
static async updateProviderModel(e, t, r) {
|
||||
let o = { ...r, pricing: this.convertPricingToPerToken(r.pricing) };
|
||||
console.log('Updating provider model - pricing conversion:', {
|
||||
original: r.pricing,
|
||||
converted: o.pricing,
|
||||
});
|
||||
let a = await i.apiClient.patch(
|
||||
'/admin/api/upstream-providers/'
|
||||
.concat(e, '/models/')
|
||||
.concat(encodeURIComponent(t)),
|
||||
o
|
||||
);
|
||||
return {
|
||||
...a,
|
||||
pricing: this.convertPricingToPerMillionTokens(a.pricing),
|
||||
};
|
||||
}
|
||||
static async deleteProviderModel(e, t) {
|
||||
return await i.apiClient.delete(
|
||||
'/admin/api/upstream-providers/'
|
||||
.concat(e, '/models/')
|
||||
.concat(encodeURIComponent(t))
|
||||
);
|
||||
}
|
||||
static async deleteAllProviderModels(e) {
|
||||
return await i.apiClient.delete(
|
||||
'/admin/api/upstream-providers/'.concat(e, '/models')
|
||||
);
|
||||
}
|
||||
static async getModelsWithProviders() {
|
||||
let e = await this.getUpstreamProviders(),
|
||||
t = e.map((e) => ({
|
||||
id: e.id.toString(),
|
||||
provider: e.provider_type,
|
||||
group_api_key: e.api_key,
|
||||
group_url: e.base_url,
|
||||
created_at: new Date().toISOString(),
|
||||
updated_at: new Date().toISOString(),
|
||||
})),
|
||||
r = [],
|
||||
i = new Set();
|
||||
for (let t of e)
|
||||
try {
|
||||
let e = await this.getProviderModels(t.id);
|
||||
(e.db_models.forEach((e) => {
|
||||
i.add(e.id);
|
||||
let o = { ...e, upstream_provider_id: t.id };
|
||||
r.push({
|
||||
...this.transformAdminModelToModel(o, t.provider_type),
|
||||
has_own_api_key: !1,
|
||||
api_key_type: 'group',
|
||||
});
|
||||
}),
|
||||
e.remote_models.forEach((e) => {
|
||||
if (!i.has(e.id)) {
|
||||
let i = { ...e, upstream_provider_id: t.id };
|
||||
r.push({
|
||||
...this.transformAdminModelToModel(i, t.provider_type),
|
||||
has_own_api_key: !1,
|
||||
api_key_type: 'remote',
|
||||
soft_deleted: !1,
|
||||
});
|
||||
}
|
||||
}));
|
||||
} catch (e) {
|
||||
console.error(
|
||||
'Failed to fetch models for provider '.concat(t.id, ':'),
|
||||
e
|
||||
);
|
||||
}
|
||||
return { models: r, groups: t };
|
||||
}
|
||||
static async createModelGroup(e) {
|
||||
let t = await this.createUpstreamProvider({
|
||||
provider_type: e.provider,
|
||||
base_url: e.group_url || '',
|
||||
api_key: e.group_api_key || '',
|
||||
enabled: !0,
|
||||
});
|
||||
return {
|
||||
id: t.id.toString(),
|
||||
provider: t.provider_type,
|
||||
group_api_key: t.api_key,
|
||||
group_url: t.base_url,
|
||||
created_at: new Date().toISOString(),
|
||||
updated_at: new Date().toISOString(),
|
||||
};
|
||||
}
|
||||
static async updateModelGroup(e, t) {
|
||||
let r = await this.updateUpstreamProvider(parseInt(e), {
|
||||
provider_type: t.provider,
|
||||
base_url: t.group_url,
|
||||
api_key: t.group_api_key,
|
||||
});
|
||||
return {
|
||||
id: r.id.toString(),
|
||||
provider: r.provider_type,
|
||||
group_api_key: r.api_key,
|
||||
group_url: r.base_url,
|
||||
created_at: new Date().toISOString(),
|
||||
updated_at: new Date().toISOString(),
|
||||
};
|
||||
}
|
||||
static async createModel(e) {
|
||||
let t = e.provider_id ? parseInt(e.provider_id) : null,
|
||||
r = {
|
||||
prompt: e.input_cost / 1e6,
|
||||
completion: e.output_cost / 1e6,
|
||||
request: e.min_cost_per_request || 0,
|
||||
image: 0,
|
||||
web_search: 0,
|
||||
internal_reasoning: 0,
|
||||
},
|
||||
o = {
|
||||
model_id: e.id || e.full_name,
|
||||
provider_id: t,
|
||||
name: e.name || e.full_name,
|
||||
description: e.description || '',
|
||||
created: Math.floor(Date.now() / 1e3),
|
||||
context_length: e.contextLength || 0,
|
||||
architecture: {
|
||||
modality: e.modelType || 'text',
|
||||
input_modalities: [e.modelType || 'text'],
|
||||
output_modalities: [e.modelType || 'text'],
|
||||
tokenizer: '',
|
||||
instruct_type: null,
|
||||
},
|
||||
pricing: this.convertPricingToPerToken(r),
|
||||
per_request_limits: null,
|
||||
top_provider: null,
|
||||
enabled: !1 !== e.isEnabled,
|
||||
},
|
||||
a = await i.apiClient.post('/admin/api/models/create', o);
|
||||
return this.transformAdminModelToModel(
|
||||
{ ...a, pricing: this.convertPricingToPerMillionTokens(a.pricing) },
|
||||
e.provider
|
||||
);
|
||||
}
|
||||
static async updateModel(e, t) {
|
||||
let r = t.provider_id ? parseInt(t.provider_id) : null,
|
||||
o = await this.getModel(e, r),
|
||||
a = {
|
||||
prompt: t.input_cost / 1e6,
|
||||
completion: t.output_cost / 1e6,
|
||||
request: t.min_cost_per_request || 0,
|
||||
image: 0,
|
||||
web_search: 0,
|
||||
internal_reasoning: 0,
|
||||
},
|
||||
n = { ...o, model_id: e, provider_id: r, pricing: a };
|
||||
(t.name && (n.name = t.name),
|
||||
t.description && (n.description = t.description),
|
||||
void 0 !== t.contextLength && (n.context_length = t.contextLength),
|
||||
void 0 !== t.isEnabled && (n.enabled = t.isEnabled));
|
||||
let s = await i.apiClient.post('/admin/api/models/update', {
|
||||
...n,
|
||||
pricing: this.convertPricingToPerToken(n.pricing),
|
||||
});
|
||||
return this.transformAdminModelToModel(
|
||||
{ ...s, pricing: this.convertPricingToPerMillionTokens(s.pricing) },
|
||||
t.provider
|
||||
);
|
||||
}
|
||||
static async deleteModel(e, t) {
|
||||
let r = t ? parseInt(t) : null;
|
||||
return (
|
||||
await i.apiClient.post('/admin/api/models/delete', {
|
||||
model_id: e,
|
||||
provider_id: r,
|
||||
}),
|
||||
{ message: 'Model deleted successfully' }
|
||||
);
|
||||
}
|
||||
static async softDeleteModel(e, t) {
|
||||
let r = t ? parseInt(t) : null,
|
||||
o = await this.getModel(e, r);
|
||||
return (
|
||||
await i.apiClient.post('/admin/api/models/update', {
|
||||
model_id: e,
|
||||
provider_id: r,
|
||||
...o,
|
||||
enabled: !1,
|
||||
pricing: this.convertPricingToPerToken(o.pricing),
|
||||
}),
|
||||
{ message: 'Model soft deleted successfully' }
|
||||
);
|
||||
}
|
||||
static async deleteModels(e, t) {
|
||||
if (!t) throw Error('provider_id is required to delete models');
|
||||
let r = parseInt(t);
|
||||
for (let t of e) await this.deleteProviderModel(r, t);
|
||||
return {
|
||||
deleted_count: e.length,
|
||||
message: 'Models deleted successfully',
|
||||
};
|
||||
}
|
||||
static async softDeleteModels(e, t) {
|
||||
if (!t) throw Error('provider_id is required to soft delete models');
|
||||
let r = parseInt(t);
|
||||
for (let t of e) {
|
||||
let e = await this.getProviderModel(r, t);
|
||||
await this.updateProviderModel(r, t, { ...e, enabled: !1 });
|
||||
}
|
||||
return {
|
||||
deleted_count: e.length,
|
||||
message: 'Models soft deleted successfully',
|
||||
};
|
||||
}
|
||||
static async bulkUpdateModels(e, t, r) {
|
||||
if (!r) throw Error('provider_id is required for bulk updates');
|
||||
let i = [],
|
||||
o = 0,
|
||||
a = parseInt(r);
|
||||
for (let r of (console.log(
|
||||
'Bulk update not implemented, ignoring updates:',
|
||||
t
|
||||
),
|
||||
e))
|
||||
try {
|
||||
let e = await this.getProviderModel(a, r);
|
||||
(await this.updateProviderModel(a, r, e), o++);
|
||||
} catch (t) {
|
||||
let e = t instanceof Error ? t.message : 'Unknown error';
|
||||
i.push('Failed to update '.concat(r, ': ').concat(e));
|
||||
}
|
||||
return {
|
||||
updated_count: o,
|
||||
total_count: e.length,
|
||||
message: 'Bulk update completed',
|
||||
errors: i,
|
||||
};
|
||||
}
|
||||
static async deleteAllModels() {
|
||||
let e = await this.getUpstreamProviders(),
|
||||
t = 0;
|
||||
for (let r of e)
|
||||
t += (await this.deleteAllProviderModels(r.id)).deleted;
|
||||
return {
|
||||
deleted_count: t,
|
||||
message: 'All models deleted successfully',
|
||||
};
|
||||
}
|
||||
static async deleteModelsByProvider(e) {
|
||||
return {
|
||||
deleted_count: (await this.deleteAllProviderModels(parseInt(e)))
|
||||
.deleted,
|
||||
message: 'Provider models deleted successfully',
|
||||
};
|
||||
}
|
||||
static async restoreModels(e, t) {
|
||||
if (!t) throw Error('provider_id is required to restore models');
|
||||
let r = parseInt(t);
|
||||
for (let t of e) {
|
||||
let e = await this.getProviderModel(r, t);
|
||||
await this.updateProviderModel(r, t, { ...e, enabled: !0 });
|
||||
}
|
||||
return {
|
||||
restored_count: e.length,
|
||||
message: 'Models restored successfully',
|
||||
};
|
||||
}
|
||||
static async refreshAllModels() {
|
||||
return { message: 'Refresh not implemented for admin API' };
|
||||
}
|
||||
static async refreshModels(e) {
|
||||
return (
|
||||
console.log(
|
||||
'Refresh models not implemented for admin API, ignoring data:',
|
||||
e
|
||||
),
|
||||
{ message: 'Refresh not implemented for admin API' }
|
||||
);
|
||||
}
|
||||
static async getOpenRouterPresets() {
|
||||
return (await i.apiClient.get('/admin/api/openrouter-presets')).map(
|
||||
(e) => ({
|
||||
...e,
|
||||
pricing: this.convertPricingToPerMillionTokens(e.pricing),
|
||||
})
|
||||
);
|
||||
}
|
||||
static async getSettings() {
|
||||
return await i.apiClient.get('/admin/api/settings');
|
||||
}
|
||||
static async updateSettings(e) {
|
||||
return await i.apiClient.patch('/admin/api/settings', e);
|
||||
}
|
||||
static async login(e) {
|
||||
return await i.apiClient.post('/admin/api/login', { password: e });
|
||||
}
|
||||
static async logout() {
|
||||
return await i.apiClient.post('/admin/api/logout', {});
|
||||
}
|
||||
}
|
||||
},
|
||||
9442: (e, t, r) => {
|
||||
r.d(t, { Fc: () => s, TN: () => d });
|
||||
var i = r(3422);
|
||||
r(4398);
|
||||
var o = r(4676),
|
||||
a = r(9183);
|
||||
let n = (0, o.F)(
|
||||
'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
default: 'bg-card text-card-foreground',
|
||||
destructive:
|
||||
'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',
|
||||
},
|
||||
},
|
||||
defaultVariants: { variant: 'default' },
|
||||
}
|
||||
);
|
||||
function s(e) {
|
||||
let { className: t, variant: r, ...o } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'alert',
|
||||
role: 'alert',
|
||||
className: (0, a.cn)(n({ variant: r }), t),
|
||||
...o,
|
||||
});
|
||||
}
|
||||
function d(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, i.jsx)('div', {
|
||||
'data-slot': 'alert-description',
|
||||
className: (0, a.cn)(
|
||||
'text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed',
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1,146 @@
|
||||
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[978],{2996:(e,t,r)=>{r.d(t,{b:()=>u});var l=r(4398),n=r(3780),a=r(3422),o=l.forwardRef((e,t)=>(0,a.jsx)(n.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null==(r=e.onMouseDown)||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));o.displayName="Label";var u=o},6383:(e,t,r)=>{function l(e,t,r){if(!t.has(e))throw TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function n(e,t){var r=l(e,t,"get");return r.get?r.get.call(e):r.value}function a(e,t,r){var n=l(e,t,"set");if(n.set)n.set.call(e,r);else{if(!n.writable)throw TypeError("attempted to set read only private field");n.value=r}return r}r.d(t,{N:()=>d});var o,u=r(4398),i=r(940),c=r(2050),f=r(6950),s=r(3422);function d(e){let t=e+"CollectionProvider",[r,l]=(0,i.A)(t),[n,a]=r(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:r}=e,l=u.useRef(null),a=u.useRef(new Map).current;return(0,s.jsx)(n,{scope:t,itemMap:a,collectionRef:l,children:r})};o.displayName=t;let d=e+"CollectionSlot",p=(0,f.TL)(d),v=u.forwardRef((e,t)=>{let{scope:r,children:l}=e,n=a(d,r),o=(0,c.s)(t,n.collectionRef);return(0,s.jsx)(p,{ref:o,children:l})});v.displayName=d;let m=e+"CollectionItemSlot",w="data-radix-collection-item",y=(0,f.TL)(m),M=u.forwardRef((e,t)=>{let{scope:r,children:l,...n}=e,o=u.useRef(null),i=(0,c.s)(t,o),f=a(m,r);return u.useEffect(()=>(f.itemMap.set(o,{ref:o,...n}),()=>void f.itemMap.delete(o))),(0,s.jsx)(y,{...{[w]:""},ref:i,children:l})});return M.displayName=m,[{Provider:o,Slot:v,ItemSlot:M},function(t){let r=a(e+"CollectionConsumer",t);return u.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll("[".concat(w,"]")));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},l]}var p=new WeakMap;function v(e,t){if("at"in Array.prototype)return Array.prototype.at.call(e,t);let r=function(e,t){let r=e.length,l=m(t),n=l>=0?l:r+l;return n<0||n>=r?-1:n}(e,t);return -1===r?void 0:e[r]}function m(e){return e!=e||0===e?0:Math.trunc(e)}o=new WeakMap},7689:(e,t,r)=>{r.d(t,{jH:()=>a});var l=r(4398);r(3422);var n=l.createContext(void 0);function a(e){let t=l.useContext(n);return e||t||"ltr"}}}]);
|
||||
'use strict';
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[978],
|
||||
{
|
||||
2996: (e, t, r) => {
|
||||
r.d(t, { b: () => u });
|
||||
var l = r(4398),
|
||||
n = r(3780),
|
||||
a = r(3422),
|
||||
o = l.forwardRef((e, t) =>
|
||||
(0, a.jsx)(n.sG.label, {
|
||||
...e,
|
||||
ref: t,
|
||||
onMouseDown: (t) => {
|
||||
var r;
|
||||
t.target.closest('button, input, select, textarea') ||
|
||||
(null == (r = e.onMouseDown) || r.call(e, t),
|
||||
!t.defaultPrevented && t.detail > 1 && t.preventDefault());
|
||||
},
|
||||
})
|
||||
);
|
||||
o.displayName = 'Label';
|
||||
var u = o;
|
||||
},
|
||||
6383: (e, t, r) => {
|
||||
function l(e, t, r) {
|
||||
if (!t.has(e))
|
||||
throw TypeError(
|
||||
'attempted to ' + r + ' private field on non-instance'
|
||||
);
|
||||
return t.get(e);
|
||||
}
|
||||
function n(e, t) {
|
||||
var r = l(e, t, 'get');
|
||||
return r.get ? r.get.call(e) : r.value;
|
||||
}
|
||||
function a(e, t, r) {
|
||||
var n = l(e, t, 'set');
|
||||
if (n.set) n.set.call(e, r);
|
||||
else {
|
||||
if (!n.writable)
|
||||
throw TypeError('attempted to set read only private field');
|
||||
n.value = r;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
r.d(t, { N: () => d });
|
||||
var o,
|
||||
u = r(4398),
|
||||
i = r(940),
|
||||
c = r(2050),
|
||||
f = r(6950),
|
||||
s = r(3422);
|
||||
function d(e) {
|
||||
let t = e + 'CollectionProvider',
|
||||
[r, l] = (0, i.A)(t),
|
||||
[n, a] = r(t, {
|
||||
collectionRef: { current: null },
|
||||
itemMap: new Map(),
|
||||
}),
|
||||
o = (e) => {
|
||||
let { scope: t, children: r } = e,
|
||||
l = u.useRef(null),
|
||||
a = u.useRef(new Map()).current;
|
||||
return (0, s.jsx)(n, {
|
||||
scope: t,
|
||||
itemMap: a,
|
||||
collectionRef: l,
|
||||
children: r,
|
||||
});
|
||||
};
|
||||
o.displayName = t;
|
||||
let d = e + 'CollectionSlot',
|
||||
p = (0, f.TL)(d),
|
||||
v = u.forwardRef((e, t) => {
|
||||
let { scope: r, children: l } = e,
|
||||
n = a(d, r),
|
||||
o = (0, c.s)(t, n.collectionRef);
|
||||
return (0, s.jsx)(p, { ref: o, children: l });
|
||||
});
|
||||
v.displayName = d;
|
||||
let m = e + 'CollectionItemSlot',
|
||||
w = 'data-radix-collection-item',
|
||||
y = (0, f.TL)(m),
|
||||
M = u.forwardRef((e, t) => {
|
||||
let { scope: r, children: l, ...n } = e,
|
||||
o = u.useRef(null),
|
||||
i = (0, c.s)(t, o),
|
||||
f = a(m, r);
|
||||
return (
|
||||
u.useEffect(
|
||||
() => (
|
||||
f.itemMap.set(o, { ref: o, ...n }),
|
||||
() => void f.itemMap.delete(o)
|
||||
)
|
||||
),
|
||||
(0, s.jsx)(y, { ...{ [w]: '' }, ref: i, children: l })
|
||||
);
|
||||
});
|
||||
return (
|
||||
(M.displayName = m),
|
||||
[
|
||||
{ Provider: o, Slot: v, ItemSlot: M },
|
||||
function (t) {
|
||||
let r = a(e + 'CollectionConsumer', t);
|
||||
return u.useCallback(() => {
|
||||
let e = r.collectionRef.current;
|
||||
if (!e) return [];
|
||||
let t = Array.from(e.querySelectorAll('['.concat(w, ']')));
|
||||
return Array.from(r.itemMap.values()).sort(
|
||||
(e, r) => t.indexOf(e.ref.current) - t.indexOf(r.ref.current)
|
||||
);
|
||||
}, [r.collectionRef, r.itemMap]);
|
||||
},
|
||||
l,
|
||||
]
|
||||
);
|
||||
}
|
||||
var p = new WeakMap();
|
||||
function v(e, t) {
|
||||
if ('at' in Array.prototype) return Array.prototype.at.call(e, t);
|
||||
let r = (function (e, t) {
|
||||
let r = e.length,
|
||||
l = m(t),
|
||||
n = l >= 0 ? l : r + l;
|
||||
return n < 0 || n >= r ? -1 : n;
|
||||
})(e, t);
|
||||
return -1 === r ? void 0 : e[r];
|
||||
}
|
||||
function m(e) {
|
||||
return e != e || 0 === e ? 0 : Math.trunc(e);
|
||||
}
|
||||
o = new WeakMap();
|
||||
},
|
||||
7689: (e, t, r) => {
|
||||
r.d(t, { jH: () => a });
|
||||
var l = r(4398);
|
||||
r(3422);
|
||||
var n = l.createContext(void 0);
|
||||
function a(e) {
|
||||
let t = l.useContext(n);
|
||||
return e || t || 'ltr';
|
||||
}
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1,113 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[492],{1689:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return r(5449)}])},5449:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let l=r(3422),n=r(7362);function o(){return(0,l.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7362:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}}),r(5348);let l=r(3422);r(4398);let n={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};function o(e){let{status:t,message:r}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("title",{children:t+": "+r}),(0,l.jsx)("div",{style:n.error,children:(0,l.jsxs)("div",{children:[(0,l.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,l.jsx)("h1",{className:"next-error-h1",style:n.h1,children:t}),(0,l.jsx)("div",{style:n.desc,children:(0,l.jsx)("h2",{style:n.h2,children:r})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{var t=t=>e(e.s=t);e.O(0,[945,497,358],()=>t(1689)),_N_E=e.O()}]);
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[492],
|
||||
{
|
||||
1689: (e, t, r) => {
|
||||
(window.__NEXT_P = window.__NEXT_P || []).push([
|
||||
'/_not-found/page',
|
||||
function () {
|
||||
return r(5449);
|
||||
},
|
||||
]);
|
||||
},
|
||||
5449: (e, t, r) => {
|
||||
'use strict';
|
||||
(Object.defineProperty(t, '__esModule', { value: !0 }),
|
||||
Object.defineProperty(t, 'default', {
|
||||
enumerable: !0,
|
||||
get: function () {
|
||||
return o;
|
||||
},
|
||||
}));
|
||||
let l = r(3422),
|
||||
n = r(7362);
|
||||
function o() {
|
||||
return (0, l.jsx)(n.HTTPAccessErrorFallback, {
|
||||
status: 404,
|
||||
message: 'This page could not be found.',
|
||||
});
|
||||
}
|
||||
('function' == typeof t.default ||
|
||||
('object' == typeof t.default && null !== t.default)) &&
|
||||
void 0 === t.default.__esModule &&
|
||||
(Object.defineProperty(t.default, '__esModule', { value: !0 }),
|
||||
Object.assign(t.default, t),
|
||||
(e.exports = t.default));
|
||||
},
|
||||
7362: (e, t, r) => {
|
||||
'use strict';
|
||||
(Object.defineProperty(t, '__esModule', { value: !0 }),
|
||||
Object.defineProperty(t, 'HTTPAccessErrorFallback', {
|
||||
enumerable: !0,
|
||||
get: function () {
|
||||
return o;
|
||||
},
|
||||
}),
|
||||
r(5348));
|
||||
let l = r(3422);
|
||||
r(4398);
|
||||
let n = {
|
||||
error: {
|
||||
fontFamily:
|
||||
'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',
|
||||
height: '100vh',
|
||||
textAlign: 'center',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
},
|
||||
desc: { display: 'inline-block' },
|
||||
h1: {
|
||||
display: 'inline-block',
|
||||
margin: '0 20px 0 0',
|
||||
padding: '0 23px 0 0',
|
||||
fontSize: 24,
|
||||
fontWeight: 500,
|
||||
verticalAlign: 'top',
|
||||
lineHeight: '49px',
|
||||
},
|
||||
h2: { fontSize: 14, fontWeight: 400, lineHeight: '49px', margin: 0 },
|
||||
};
|
||||
function o(e) {
|
||||
let { status: t, message: r } = e;
|
||||
return (0, l.jsxs)(l.Fragment, {
|
||||
children: [
|
||||
(0, l.jsx)('title', { children: t + ': ' + r }),
|
||||
(0, l.jsx)('div', {
|
||||
style: n.error,
|
||||
children: (0, l.jsxs)('div', {
|
||||
children: [
|
||||
(0, l.jsx)('style', {
|
||||
dangerouslySetInnerHTML: {
|
||||
__html:
|
||||
'body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}',
|
||||
},
|
||||
}),
|
||||
(0, l.jsx)('h1', {
|
||||
className: 'next-error-h1',
|
||||
style: n.h1,
|
||||
children: t,
|
||||
}),
|
||||
(0, l.jsx)('div', {
|
||||
style: n.desc,
|
||||
children: (0, l.jsx)('h2', { style: n.h2, children: r }),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
],
|
||||
});
|
||||
}
|
||||
('function' == typeof t.default ||
|
||||
('object' == typeof t.default && null !== t.default)) &&
|
||||
void 0 === t.default.__esModule &&
|
||||
(Object.defineProperty(t.default, '__esModule', { value: !0 }),
|
||||
Object.assign(t.default, t),
|
||||
(e.exports = t.default));
|
||||
},
|
||||
},
|
||||
(e) => {
|
||||
var t = (t) => e((e.s = t));
|
||||
(e.O(0, [945, 497, 358], () => t(1689)), (_N_E = e.O()));
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -0,0 +1,426 @@
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[177],
|
||||
{
|
||||
3234: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { s: () => o });
|
||||
var a = r(9945),
|
||||
n = r(5842);
|
||||
a.Ik({
|
||||
endpoint: a.Yj().url().or(a.eu('')),
|
||||
apiKey: a.Yj(),
|
||||
enabled: a.zM(),
|
||||
});
|
||||
class o {
|
||||
static getServerConfig() {
|
||||
return {
|
||||
endpoint: localStorage.getItem('server_endpoint') || '',
|
||||
apiKey: localStorage.getItem('server_api_key') || '',
|
||||
enabled: 'true' === localStorage.getItem('server_enabled'),
|
||||
};
|
||||
}
|
||||
static saveServerConfig(e) {
|
||||
(localStorage.setItem('server_endpoint', e.endpoint),
|
||||
localStorage.setItem('server_api_key', e.apiKey),
|
||||
localStorage.setItem('server_enabled', e.enabled.toString()));
|
||||
}
|
||||
static isServerConfigValid() {
|
||||
let e = this.getServerConfig();
|
||||
return e.enabled && !!e.endpoint && !!e.apiKey;
|
||||
}
|
||||
static getLocalBaseUrl() {
|
||||
return 'http://127.0.0.1:8000';
|
||||
}
|
||||
static getBaseUrl() {
|
||||
let e = this.getServerConfig();
|
||||
return e.enabled && e.endpoint ? e.endpoint : this.getLocalBaseUrl();
|
||||
}
|
||||
static getAuthHeaders() {
|
||||
let e = { 'Content-Type': 'application/json' };
|
||||
try {
|
||||
{
|
||||
let t = localStorage.getItem('admin_token'),
|
||||
r = localStorage.getItem('admin_token_expiry');
|
||||
if (t && r) {
|
||||
let a = parseInt(r, 10);
|
||||
if (Date.now() < a)
|
||||
return ((e.Authorization = 'Bearer '.concat(t)), e);
|
||||
(localStorage.removeItem('admin_token'),
|
||||
localStorage.removeItem('admin_token_expiry'));
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('Error accessing localStorage:', e);
|
||||
}
|
||||
let t = 'dummy-admin-key-12345';
|
||||
return (t && (e.Authorization = 'Bearer '.concat(t)), e);
|
||||
}
|
||||
static isTokenValid() {
|
||||
let e = localStorage.getItem('admin_token'),
|
||||
t = localStorage.getItem('admin_token_expiry');
|
||||
if (!e || !t) return !1;
|
||||
let r = parseInt(t, 10);
|
||||
return Date.now() < r;
|
||||
}
|
||||
static clearToken() {
|
||||
(localStorage.removeItem('admin_token'),
|
||||
localStorage.removeItem('admin_token_expiry'));
|
||||
}
|
||||
static setToken(e, t) {
|
||||
let r = Date.now() + 1e3 * t;
|
||||
(localStorage.setItem('admin_token', e),
|
||||
localStorage.setItem('admin_token_expiry', String(r)));
|
||||
}
|
||||
static async testConnection(e) {
|
||||
if (!e.endpoint) return !1;
|
||||
try {
|
||||
let t = await n.A.get(''.concat(e.endpoint, '/health'), {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
timeout: 1e3,
|
||||
});
|
||||
return 200 === t.status;
|
||||
} catch (e) {
|
||||
return (console.error('Server connection test failed:', e), !1);
|
||||
}
|
||||
}
|
||||
static async saveServerConfigToBackend(e) {
|
||||
try {
|
||||
this.saveServerConfig(e);
|
||||
let t = this.getLocalBaseUrl(),
|
||||
r = { endpoint: e.endpoint, api_key: e.apiKey };
|
||||
return (
|
||||
await n.A.post(''.concat(t, '/api/server-config'), r, {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
}),
|
||||
!0
|
||||
);
|
||||
} catch (e) {
|
||||
return (
|
||||
console.error('Failed to save configuration to backend:', e),
|
||||
!1
|
||||
);
|
||||
}
|
||||
}
|
||||
static async loadServerConfigFromBackend() {
|
||||
try {
|
||||
let e = this.getLocalBaseUrl(),
|
||||
t = await n.A.get(''.concat(e, '/api/server-config'), {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
});
|
||||
if (t && t.data) {
|
||||
let e = {
|
||||
endpoint: t.data.endpoint || '',
|
||||
apiKey: t.data.api_key || '',
|
||||
enabled: !!t.data.endpoint && !!t.data.api_key,
|
||||
};
|
||||
return (this.saveServerConfig(e), e);
|
||||
}
|
||||
return null;
|
||||
} catch (e) {
|
||||
return (
|
||||
console.error('Failed to load configuration from backend:', e),
|
||||
null
|
||||
);
|
||||
}
|
||||
}
|
||||
static async requestNewApiKey(e) {
|
||||
try {
|
||||
let t = this.getLocalBaseUrl(),
|
||||
r = await n.A.post(
|
||||
''.concat(t, '/api/server-config/new-key'),
|
||||
{ reason: e },
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
...this.getAuthHeaders(),
|
||||
},
|
||||
}
|
||||
);
|
||||
if (r.data && r.data.api_key) return r.data.api_key;
|
||||
throw Error('No API key received from server');
|
||||
} catch (e) {
|
||||
throw (console.error('Failed to request new API key:', e), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
3372: (e, t, r) => {
|
||||
(Promise.resolve().then(r.bind(r, 5414)),
|
||||
Promise.resolve().then(r.t.bind(r, 8368, 23)),
|
||||
Promise.resolve().then(r.t.bind(r, 7248, 23)),
|
||||
Promise.resolve().then(r.t.bind(r, 8770, 23)));
|
||||
},
|
||||
5414: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { Providers: () => w });
|
||||
var a = r(3422),
|
||||
n = r(5235),
|
||||
o = r(100),
|
||||
s = r(6126),
|
||||
i = r(4398),
|
||||
c = r(3831),
|
||||
l = r(7916);
|
||||
class u {
|
||||
static async listUsers(e) {
|
||||
try {
|
||||
let t = {};
|
||||
return (
|
||||
e && (t.organization_id = e),
|
||||
await l.apiClient.get('/api/users', t)
|
||||
);
|
||||
} catch (e) {
|
||||
throw (console.error('Error fetching users:', e), e);
|
||||
}
|
||||
}
|
||||
static async getUser(e) {
|
||||
try {
|
||||
return await l.apiClient.get('/api/users/'.concat(e));
|
||||
} catch (t) {
|
||||
throw (console.error('Error fetching user '.concat(e, ':'), t), t);
|
||||
}
|
||||
}
|
||||
static async createUser(e) {
|
||||
try {
|
||||
return await l.apiClient.post('/api/users', e);
|
||||
} catch (e) {
|
||||
throw (console.error('Error creating user:', e), e);
|
||||
}
|
||||
}
|
||||
static async updateUser(e, t) {
|
||||
try {
|
||||
return await l.apiClient.put('/api/users/'.concat(e), t);
|
||||
} catch (t) {
|
||||
throw (console.error('Error updating user '.concat(e, ':'), t), t);
|
||||
}
|
||||
}
|
||||
static async deleteUser(e) {
|
||||
try {
|
||||
await l.apiClient.delete('/api/users/'.concat(e));
|
||||
} catch (t) {
|
||||
throw (console.error('Error deleting user '.concat(e, ':'), t), t);
|
||||
}
|
||||
}
|
||||
}
|
||||
let d = (0, i.createContext)({
|
||||
user: null,
|
||||
isLoading: !1,
|
||||
error: null,
|
||||
isAuthenticated: !1,
|
||||
nostrPublicKey: null,
|
||||
signin: async () => {},
|
||||
signout: () => {},
|
||||
connectNostr: async () => null,
|
||||
});
|
||||
function h(e) {
|
||||
let { children: t } = e,
|
||||
[r, n] = (0, i.useState)(null),
|
||||
[o, s] = (0, i.useState)(!0),
|
||||
[c, l] = (0, i.useState)(null),
|
||||
[h, g] = (0, i.useState)(null),
|
||||
p = async () => {
|
||||
try {
|
||||
if (!('nostr' in window))
|
||||
return (console.error('Nostr extension not found'), null);
|
||||
{
|
||||
let e = await window.nostr.getPublicKey();
|
||||
return (g(e), localStorage.setItem('nostr_public_key', e), e);
|
||||
}
|
||||
} catch (e) {
|
||||
return (console.error('Error connecting to Nostr:', e), null);
|
||||
}
|
||||
},
|
||||
y = async () => {
|
||||
(s(!0), l(null));
|
||||
try {
|
||||
let e = await u.getUser('1');
|
||||
if (!e) throw Error('Admin user not found');
|
||||
(n(e),
|
||||
localStorage.setItem('auth_user', JSON.stringify(e)),
|
||||
h || (await p()));
|
||||
} catch (e) {
|
||||
throw (l(e instanceof Error ? e : Error('Sign in failed')), e);
|
||||
} finally {
|
||||
s(!1);
|
||||
}
|
||||
};
|
||||
return (0, a.jsx)(d.Provider, {
|
||||
value: {
|
||||
user: r,
|
||||
isLoading: o,
|
||||
error: c,
|
||||
isAuthenticated: !0,
|
||||
nostrPublicKey: h,
|
||||
signin: y,
|
||||
signout: () => {
|
||||
(n(null), localStorage.removeItem('auth_user'));
|
||||
},
|
||||
connectNostr: p,
|
||||
},
|
||||
children: t,
|
||||
});
|
||||
}
|
||||
var g = r(1064),
|
||||
p = r(3234);
|
||||
function y(e) {
|
||||
let { children: t } = e,
|
||||
r = (0, g.useRouter)(),
|
||||
n = (0, g.usePathname)();
|
||||
return (
|
||||
(0, i.useEffect)(() => {
|
||||
['/login', '/_register', '/unauthorized'].some((e) =>
|
||||
n.startsWith(e)
|
||||
) ||
|
||||
p.s.isTokenValid() ||
|
||||
r.push('/login');
|
||||
}, [r, n]),
|
||||
(0, a.jsx)(a.Fragment, { children: t })
|
||||
);
|
||||
}
|
||||
function w(e) {
|
||||
let { children: t } = e,
|
||||
[r] = (0, i.useState)(
|
||||
() =>
|
||||
new n.E({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
staleTime: 3e5,
|
||||
refetchOnWindowFocus: !1,
|
||||
retry: 2,
|
||||
},
|
||||
},
|
||||
})
|
||||
);
|
||||
return (0, a.jsxs)(o.Ht, {
|
||||
client: r,
|
||||
children: [
|
||||
(0, a.jsx)(h, {
|
||||
children: (0, a.jsxs)(y, {
|
||||
children: [t, (0, a.jsx)(c.l$, { position: 'top-right' })],
|
||||
}),
|
||||
}),
|
||||
(0, a.jsx)(s.E, { initialIsOpen: !1 }),
|
||||
],
|
||||
});
|
||||
}
|
||||
},
|
||||
7916: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { apiClient: () => s });
|
||||
var a = r(5842),
|
||||
n = r(3234);
|
||||
class o {
|
||||
getBaseUrl() {
|
||||
return n.s.getLocalBaseUrl();
|
||||
}
|
||||
getHeaders() {
|
||||
return n.s.getAuthHeaders();
|
||||
}
|
||||
handleAuthError(e) {
|
||||
if (a.A.isAxiosError(e)) {
|
||||
var t, r;
|
||||
((null == (t = e.response) ? void 0 : t.status) === 401 ||
|
||||
(null == (r = e.response) ? void 0 : r.status) === 403) &&
|
||||
(n.s.clearToken(), (window.location.href = '/login'));
|
||||
}
|
||||
}
|
||||
async get(e, t) {
|
||||
let r = {
|
||||
headers: this.getHeaders(),
|
||||
params: t,
|
||||
withCredentials: !1,
|
||||
};
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making GET request to '.concat(this.getBaseUrl()).concat(e)
|
||||
),
|
||||
(await a.A.get(''.concat(this.getBaseUrl()).concat(e), r)).data
|
||||
);
|
||||
} catch (e) {
|
||||
throw (this.handleAuthError(e), e);
|
||||
}
|
||||
}
|
||||
async post(e, t) {
|
||||
let r = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making POST request to '.concat(this.getBaseUrl()).concat(e),
|
||||
t
|
||||
),
|
||||
(await a.A.post(''.concat(this.getBaseUrl()).concat(e), t, r))
|
||||
.data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error posting to '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
async put(e, t) {
|
||||
let r = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making PUT request to '.concat(this.getBaseUrl()).concat(e),
|
||||
t
|
||||
),
|
||||
(await a.A.put(''.concat(this.getBaseUrl()).concat(e), t, r)).data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error updating '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
async patch(e, t) {
|
||||
let r = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making PATCH request to '.concat(this.getBaseUrl()).concat(e),
|
||||
t
|
||||
),
|
||||
(await a.A.patch(''.concat(this.getBaseUrl()).concat(e), t, r))
|
||||
.data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error patching '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
async delete(e) {
|
||||
let t = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making DELETE request to '.concat(this.getBaseUrl()).concat(e)
|
||||
),
|
||||
(await a.A.delete(''.concat(this.getBaseUrl()).concat(e), t)).data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error deleting from '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
let s = new o();
|
||||
},
|
||||
8770: () => {},
|
||||
},
|
||||
(e) => {
|
||||
var t = (t) => e((e.s = t));
|
||||
(e.O(0, [699, 273, 363, 29, 578, 945, 497, 358], () => t(3372)),
|
||||
(_N_E = e.O()));
|
||||
},
|
||||
]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,555 @@
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[520],
|
||||
{
|
||||
268: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { p: () => o });
|
||||
var a = r(3422);
|
||||
r(4398);
|
||||
var n = r(9183);
|
||||
function o(e) {
|
||||
let { className: t, type: r, ...o } = e;
|
||||
return (0, a.jsx)('input', {
|
||||
type: r,
|
||||
'data-slot': 'input',
|
||||
className: (0, n.cn)(
|
||||
'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
|
||||
'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',
|
||||
'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',
|
||||
t
|
||||
),
|
||||
...o,
|
||||
});
|
||||
}
|
||||
},
|
||||
2738: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, {
|
||||
BT: () => c,
|
||||
Wu: () => l,
|
||||
ZB: () => i,
|
||||
Zp: () => o,
|
||||
aR: () => s,
|
||||
wL: () => d,
|
||||
});
|
||||
var a = r(3422);
|
||||
r(4398);
|
||||
var n = r(9183);
|
||||
function o(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'card',
|
||||
className: (0, n.cn)(
|
||||
'bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm',
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function s(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'card-header',
|
||||
className: (0, n.cn)(
|
||||
'@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',
|
||||
t
|
||||
),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function i(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'card-title',
|
||||
className: (0, n.cn)('leading-none font-semibold', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function c(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'card-description',
|
||||
className: (0, n.cn)('text-muted-foreground text-sm', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function l(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'card-content',
|
||||
className: (0, n.cn)('px-6', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function d(e) {
|
||||
let { className: t, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'card-footer',
|
||||
className: (0, n.cn)('flex items-center px-6 [.border-t]:pt-6', t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
},
|
||||
3234: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { s: () => o });
|
||||
var a = r(9945),
|
||||
n = r(5842);
|
||||
a.Ik({
|
||||
endpoint: a.Yj().url().or(a.eu('')),
|
||||
apiKey: a.Yj(),
|
||||
enabled: a.zM(),
|
||||
});
|
||||
class o {
|
||||
static getServerConfig() {
|
||||
return {
|
||||
endpoint: localStorage.getItem('server_endpoint') || '',
|
||||
apiKey: localStorage.getItem('server_api_key') || '',
|
||||
enabled: 'true' === localStorage.getItem('server_enabled'),
|
||||
};
|
||||
}
|
||||
static saveServerConfig(e) {
|
||||
(localStorage.setItem('server_endpoint', e.endpoint),
|
||||
localStorage.setItem('server_api_key', e.apiKey),
|
||||
localStorage.setItem('server_enabled', e.enabled.toString()));
|
||||
}
|
||||
static isServerConfigValid() {
|
||||
let e = this.getServerConfig();
|
||||
return e.enabled && !!e.endpoint && !!e.apiKey;
|
||||
}
|
||||
static getLocalBaseUrl() {
|
||||
return 'http://127.0.0.1:8000';
|
||||
}
|
||||
static getBaseUrl() {
|
||||
let e = this.getServerConfig();
|
||||
return e.enabled && e.endpoint ? e.endpoint : this.getLocalBaseUrl();
|
||||
}
|
||||
static getAuthHeaders() {
|
||||
let e = { 'Content-Type': 'application/json' };
|
||||
try {
|
||||
{
|
||||
let t = localStorage.getItem('admin_token'),
|
||||
r = localStorage.getItem('admin_token_expiry');
|
||||
if (t && r) {
|
||||
let a = parseInt(r, 10);
|
||||
if (Date.now() < a)
|
||||
return ((e.Authorization = 'Bearer '.concat(t)), e);
|
||||
(localStorage.removeItem('admin_token'),
|
||||
localStorage.removeItem('admin_token_expiry'));
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('Error accessing localStorage:', e);
|
||||
}
|
||||
let t = 'dummy-admin-key-12345';
|
||||
return (t && (e.Authorization = 'Bearer '.concat(t)), e);
|
||||
}
|
||||
static isTokenValid() {
|
||||
let e = localStorage.getItem('admin_token'),
|
||||
t = localStorage.getItem('admin_token_expiry');
|
||||
if (!e || !t) return !1;
|
||||
let r = parseInt(t, 10);
|
||||
return Date.now() < r;
|
||||
}
|
||||
static clearToken() {
|
||||
(localStorage.removeItem('admin_token'),
|
||||
localStorage.removeItem('admin_token_expiry'));
|
||||
}
|
||||
static setToken(e, t) {
|
||||
let r = Date.now() + 1e3 * t;
|
||||
(localStorage.setItem('admin_token', e),
|
||||
localStorage.setItem('admin_token_expiry', String(r)));
|
||||
}
|
||||
static async testConnection(e) {
|
||||
if (!e.endpoint) return !1;
|
||||
try {
|
||||
let t = await n.A.get(''.concat(e.endpoint, '/health'), {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
timeout: 1e3,
|
||||
});
|
||||
return 200 === t.status;
|
||||
} catch (e) {
|
||||
return (console.error('Server connection test failed:', e), !1);
|
||||
}
|
||||
}
|
||||
static async saveServerConfigToBackend(e) {
|
||||
try {
|
||||
this.saveServerConfig(e);
|
||||
let t = this.getLocalBaseUrl(),
|
||||
r = { endpoint: e.endpoint, api_key: e.apiKey };
|
||||
return (
|
||||
await n.A.post(''.concat(t, '/api/server-config'), r, {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
}),
|
||||
!0
|
||||
);
|
||||
} catch (e) {
|
||||
return (
|
||||
console.error('Failed to save configuration to backend:', e),
|
||||
!1
|
||||
);
|
||||
}
|
||||
}
|
||||
static async loadServerConfigFromBackend() {
|
||||
try {
|
||||
let e = this.getLocalBaseUrl(),
|
||||
t = await n.A.get(''.concat(e, '/api/server-config'), {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
});
|
||||
if (t && t.data) {
|
||||
let e = {
|
||||
endpoint: t.data.endpoint || '',
|
||||
apiKey: t.data.api_key || '',
|
||||
enabled: !!t.data.endpoint && !!t.data.api_key,
|
||||
};
|
||||
return (this.saveServerConfig(e), e);
|
||||
}
|
||||
return null;
|
||||
} catch (e) {
|
||||
return (
|
||||
console.error('Failed to load configuration from backend:', e),
|
||||
null
|
||||
);
|
||||
}
|
||||
}
|
||||
static async requestNewApiKey(e) {
|
||||
try {
|
||||
let t = this.getLocalBaseUrl(),
|
||||
r = await n.A.post(
|
||||
''.concat(t, '/api/server-config/new-key'),
|
||||
{ reason: e },
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
...this.getAuthHeaders(),
|
||||
},
|
||||
}
|
||||
);
|
||||
if (r.data && r.data.api_key) return r.data.api_key;
|
||||
throw Error('No API key received from server');
|
||||
} catch (e) {
|
||||
throw (console.error('Failed to request new API key:', e), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
3270: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { bN: () => s, wu: () => i });
|
||||
var a = r(9945);
|
||||
r(7916);
|
||||
var n = r(3234),
|
||||
o = r(5842);
|
||||
async function s(e) {
|
||||
try {
|
||||
let t = n.s.getLocalBaseUrl(),
|
||||
r = await o.A.post(
|
||||
''.concat(t, '/admin/api/login'),
|
||||
{ password: e },
|
||||
{ headers: { 'Content-Type': 'application/json' } }
|
||||
);
|
||||
return (
|
||||
r.data.token &&
|
||||
r.data.expires_in &&
|
||||
n.s.setToken(r.data.token, r.data.expires_in),
|
||||
r.data
|
||||
);
|
||||
} catch (e) {
|
||||
throw (console.error('Admin login error:', e), e);
|
||||
}
|
||||
}
|
||||
async function i() {
|
||||
try {
|
||||
let e = localStorage.getItem('admin_token');
|
||||
if (e) {
|
||||
let t = n.s.getLocalBaseUrl();
|
||||
await o.A.post(
|
||||
''.concat(t, '/admin/api/logout'),
|
||||
{},
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: 'Bearer '.concat(e),
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Admin logout error:', e);
|
||||
} finally {
|
||||
n.s.clearToken();
|
||||
}
|
||||
}
|
||||
(a.Ik({ username: a.Yj().optional(), password: a.Yj().optional() }),
|
||||
a.Ik({ id: a.Yj() }),
|
||||
a.Ik({ password: a.Yj().min(1, 'Password is required') }),
|
||||
a.Ik({ ok: a.zM(), token: a.Yj(), expires_in: a.ai() }),
|
||||
a.Ik({
|
||||
npub: a.Yj().min(10, { message: 'must have at least 10 character' }),
|
||||
name: a.Yj().optional(),
|
||||
}),
|
||||
a.Ik({ user_id: a.Yj(), theme: a.Yj() }));
|
||||
},
|
||||
3648: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { $: () => c, r: () => i });
|
||||
var a = r(3422);
|
||||
r(4398);
|
||||
var n = r(6950),
|
||||
o = r(4676),
|
||||
s = r(9183);
|
||||
let i = (0, o.F)(
|
||||
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
default:
|
||||
'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',
|
||||
destructive:
|
||||
'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
|
||||
outline:
|
||||
'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
|
||||
secondary:
|
||||
'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',
|
||||
ghost:
|
||||
'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
|
||||
link: 'text-primary underline-offset-4 hover:underline',
|
||||
},
|
||||
size: {
|
||||
default: 'h-9 px-4 py-2 has-[>svg]:px-3',
|
||||
sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',
|
||||
lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',
|
||||
icon: 'size-9',
|
||||
},
|
||||
},
|
||||
defaultVariants: { variant: 'default', size: 'default' },
|
||||
}
|
||||
);
|
||||
function c(e) {
|
||||
let { className: t, variant: r, size: o, asChild: c = !1, ...l } = e,
|
||||
d = c ? n.DX : 'button';
|
||||
return (0, a.jsx)(d, {
|
||||
'data-slot': 'button',
|
||||
className: (0, s.cn)(i({ variant: r, size: o, className: t })),
|
||||
...l,
|
||||
});
|
||||
}
|
||||
},
|
||||
7395: (e, t, r) => {
|
||||
Promise.resolve().then(r.bind(r, 9079));
|
||||
},
|
||||
7916: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { apiClient: () => s });
|
||||
var a = r(5842),
|
||||
n = r(3234);
|
||||
class o {
|
||||
getBaseUrl() {
|
||||
return n.s.getLocalBaseUrl();
|
||||
}
|
||||
getHeaders() {
|
||||
return n.s.getAuthHeaders();
|
||||
}
|
||||
handleAuthError(e) {
|
||||
if (a.A.isAxiosError(e)) {
|
||||
var t, r;
|
||||
((null == (t = e.response) ? void 0 : t.status) === 401 ||
|
||||
(null == (r = e.response) ? void 0 : r.status) === 403) &&
|
||||
(n.s.clearToken(), (window.location.href = '/login'));
|
||||
}
|
||||
}
|
||||
async get(e, t) {
|
||||
let r = {
|
||||
headers: this.getHeaders(),
|
||||
params: t,
|
||||
withCredentials: !1,
|
||||
};
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making GET request to '.concat(this.getBaseUrl()).concat(e)
|
||||
),
|
||||
(await a.A.get(''.concat(this.getBaseUrl()).concat(e), r)).data
|
||||
);
|
||||
} catch (e) {
|
||||
throw (this.handleAuthError(e), e);
|
||||
}
|
||||
}
|
||||
async post(e, t) {
|
||||
let r = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making POST request to '.concat(this.getBaseUrl()).concat(e),
|
||||
t
|
||||
),
|
||||
(await a.A.post(''.concat(this.getBaseUrl()).concat(e), t, r))
|
||||
.data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error posting to '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
async put(e, t) {
|
||||
let r = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making PUT request to '.concat(this.getBaseUrl()).concat(e),
|
||||
t
|
||||
),
|
||||
(await a.A.put(''.concat(this.getBaseUrl()).concat(e), t, r)).data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error updating '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
async patch(e, t) {
|
||||
let r = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making PATCH request to '.concat(this.getBaseUrl()).concat(e),
|
||||
t
|
||||
),
|
||||
(await a.A.patch(''.concat(this.getBaseUrl()).concat(e), t, r))
|
||||
.data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error patching '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
async delete(e) {
|
||||
let t = { headers: this.getHeaders(), withCredentials: !1 };
|
||||
try {
|
||||
return (
|
||||
console.log(
|
||||
'Making DELETE request to '.concat(this.getBaseUrl()).concat(e)
|
||||
),
|
||||
(await a.A.delete(''.concat(this.getBaseUrl()).concat(e), t)).data
|
||||
);
|
||||
} catch (t) {
|
||||
throw (
|
||||
this.handleAuthError(t),
|
||||
console.error('Error deleting from '.concat(e, ':'), t),
|
||||
t
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
let s = new o();
|
||||
},
|
||||
9079: (e, t, r) => {
|
||||
'use strict';
|
||||
(r.r(t), r.d(t, { default: () => g }));
|
||||
var a = r(3422),
|
||||
n = r(4398),
|
||||
o = r(1064),
|
||||
s = r(3648),
|
||||
i = r(268),
|
||||
c = r(2738),
|
||||
l = r(3270),
|
||||
d = r(3234),
|
||||
u = r(3831);
|
||||
function g() {
|
||||
let e = (0, o.useRouter)(),
|
||||
[t, r] = (0, n.useState)(''),
|
||||
[g, p] = (0, n.useState)(!1);
|
||||
(0, n.useEffect)(() => {
|
||||
d.s.isTokenValid() && e.push('/');
|
||||
}, [e]);
|
||||
let h = async (r) => {
|
||||
if ((r.preventDefault(), !t))
|
||||
return void u.oR.error('Please enter your password');
|
||||
p(!0);
|
||||
try {
|
||||
(await (0, l.bN)(t),
|
||||
u.oR.success('Successfully logged in'),
|
||||
e.push('/'));
|
||||
} catch (e) {
|
||||
(console.error('Login error:', e),
|
||||
u.oR.error('Invalid password. Please try again.'));
|
||||
} finally {
|
||||
p(!1);
|
||||
}
|
||||
};
|
||||
return (0, a.jsx)('div', {
|
||||
className:
|
||||
'flex min-h-screen items-center justify-center bg-gray-50 p-4',
|
||||
children: (0, a.jsxs)(c.Zp, {
|
||||
className: 'w-full max-w-md',
|
||||
children: [
|
||||
(0, a.jsxs)(c.aR, {
|
||||
className: 'space-y-1',
|
||||
children: [
|
||||
(0, a.jsx)(c.ZB, {
|
||||
className: 'text-center text-2xl font-bold',
|
||||
children: 'Admin Login',
|
||||
}),
|
||||
(0, a.jsx)(c.BT, {
|
||||
className: 'text-center',
|
||||
children:
|
||||
'Enter your admin password to access the dashboard',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, a.jsx)(c.Wu, {
|
||||
children: (0, a.jsxs)('form', {
|
||||
onSubmit: h,
|
||||
className: 'space-y-4',
|
||||
children: [
|
||||
(0, a.jsx)('div', {
|
||||
className: 'space-y-2',
|
||||
children: (0, a.jsx)(i.p, {
|
||||
type: 'password',
|
||||
placeholder: 'Admin Password',
|
||||
value: t,
|
||||
onChange: (e) => r(e.target.value),
|
||||
disabled: g,
|
||||
autoFocus: !0,
|
||||
required: !0,
|
||||
}),
|
||||
}),
|
||||
(0, a.jsx)(s.$, {
|
||||
type: 'submit',
|
||||
className: 'w-full',
|
||||
disabled: g,
|
||||
children: g ? 'Logging in...' : 'Login',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
});
|
||||
}
|
||||
},
|
||||
9183: (e, t, r) => {
|
||||
'use strict';
|
||||
r.d(t, { cn: () => o });
|
||||
var a = r(8082),
|
||||
n = r(4966);
|
||||
function o() {
|
||||
for (var e = arguments.length, t = Array(e), r = 0; r < e; r++)
|
||||
t[r] = arguments[r];
|
||||
return (0, n.QP)((0, a.$)(t));
|
||||
}
|
||||
},
|
||||
},
|
||||
(e) => {
|
||||
var t = (t) => e((e.s = t));
|
||||
(e.O(0, [363, 222, 945, 497, 358], () => t(7395)), (_N_E = e.O()));
|
||||
},
|
||||
]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,856 @@
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[662],
|
||||
{
|
||||
834: (e, s, a) => {
|
||||
'use strict';
|
||||
a.d(s, { T: () => t });
|
||||
var r = a(3422);
|
||||
a(4398);
|
||||
var n = a(9183);
|
||||
function t(e) {
|
||||
let { className: s, ...a } = e;
|
||||
return (0, r.jsx)('textarea', {
|
||||
'data-slot': 'textarea',
|
||||
className: (0, n.cn)(
|
||||
'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
|
||||
s
|
||||
),
|
||||
...a,
|
||||
});
|
||||
}
|
||||
},
|
||||
2739: (e, s, a) => {
|
||||
Promise.resolve().then(a.bind(a, 4961));
|
||||
},
|
||||
4961: (e, s, a) => {
|
||||
'use strict';
|
||||
(a.r(s), a.d(s, { default: () => R }));
|
||||
var r = a(3422),
|
||||
n = a(4398),
|
||||
t = a(6839),
|
||||
i = a(3234),
|
||||
l = a(3831),
|
||||
c = a(2738),
|
||||
d = a(268),
|
||||
o = a(3130),
|
||||
h = a(3648),
|
||||
u = a(8561),
|
||||
x = a(9675),
|
||||
p = a(246),
|
||||
m = a(4717);
|
||||
function j() {
|
||||
let {
|
||||
config: e,
|
||||
updateField: s,
|
||||
saveConfig: a,
|
||||
isSyncing: t,
|
||||
} = (function () {
|
||||
let [e, s] = (0, n.useState)({
|
||||
endpoint: '',
|
||||
apiKey: '',
|
||||
enabled: !1,
|
||||
}),
|
||||
[a, r] = (0, n.useState)(!1),
|
||||
[t, c] = (0, n.useState)(!1);
|
||||
(0, n.useEffect)(() => {
|
||||
(async () => {
|
||||
(s(i.s.getServerConfig()), r(!0));
|
||||
try {
|
||||
c(!0);
|
||||
let e = await i.s.loadServerConfigFromBackend();
|
||||
e && s(e);
|
||||
} catch (e) {
|
||||
console.error('Error loading configuration from backend:', e);
|
||||
} finally {
|
||||
c(!1);
|
||||
}
|
||||
})();
|
||||
}, []);
|
||||
let d = (0, n.useCallback)(async (e) => {
|
||||
(i.s.saveServerConfig(e), s(e));
|
||||
try {
|
||||
(c(!0),
|
||||
(await i.s.saveServerConfigToBackend(e)) ||
|
||||
l.oR.warning(
|
||||
'Configuration saved locally, but failed to sync with server'
|
||||
));
|
||||
} catch (e) {
|
||||
(console.error('Error saving configuration to backend:', e),
|
||||
l.oR.error('Failed to sync configuration with server'));
|
||||
} finally {
|
||||
c(!1);
|
||||
}
|
||||
}, []),
|
||||
o = (0, n.useCallback)(
|
||||
(s, a) => {
|
||||
d({ ...e, [s]: a });
|
||||
},
|
||||
[e, d]
|
||||
),
|
||||
h = (0, n.useCallback)(() => {
|
||||
d({ ...e, enabled: !e.enabled });
|
||||
}, [e, d]);
|
||||
return {
|
||||
config: e,
|
||||
isLoaded: a,
|
||||
isSyncing: t,
|
||||
saveConfig: d,
|
||||
updateField: o,
|
||||
toggleEnabled: h,
|
||||
isConfigValid: (0, n.useCallback)(
|
||||
() => i.s.isServerConfigValid(),
|
||||
[]
|
||||
),
|
||||
};
|
||||
})(),
|
||||
[j, v] = (0, n.useState)('idle'),
|
||||
f = (e, a) => {
|
||||
(s(e, a), v('idle'));
|
||||
},
|
||||
g = async () => {
|
||||
if (e.endpoint) {
|
||||
v('testing');
|
||||
try {
|
||||
(await i.s.testConnection(e))
|
||||
? (v('success'), l.oR.success('Connection successful!'))
|
||||
: (v('error'),
|
||||
l.oR.error(
|
||||
'Connection failed. Please check your settings.'
|
||||
));
|
||||
} catch (e) {
|
||||
(console.error('Connection test error:', e),
|
||||
v('error'),
|
||||
l.oR.error('Connection failed. Please check your settings.'));
|
||||
}
|
||||
}
|
||||
};
|
||||
return (0, r.jsxs)(r.Fragment, {
|
||||
children: [
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'mb-6 flex items-center justify-between',
|
||||
children: [
|
||||
(0, r.jsx)('h2', {
|
||||
className: 'text-xl font-semibold tracking-tight',
|
||||
children: 'External Server Configuration',
|
||||
}),
|
||||
t &&
|
||||
(0, r.jsxs)(u.E, {
|
||||
variant: 'outline',
|
||||
className: 'flex items-center gap-1',
|
||||
children: [
|
||||
(0, r.jsx)(x.A, {
|
||||
className: 'h-4 w-4 animate-spin text-blue-500',
|
||||
}),
|
||||
'Syncing...',
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Zp, {
|
||||
children: [
|
||||
(0, r.jsx)(c.aR, {
|
||||
children: (0, r.jsxs)('div', {
|
||||
className: 'flex items-center justify-between',
|
||||
children: [
|
||||
(0, r.jsxs)('div', {
|
||||
children: [
|
||||
(0, r.jsx)(c.ZB, {
|
||||
children: 'Request Forwarding Settings',
|
||||
}),
|
||||
(0, r.jsx)(c.BT, {
|
||||
children:
|
||||
'Configure external server endpoint and authentication for API request forwarding',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
e.enabled &&
|
||||
('idle' === j
|
||||
? (0, r.jsxs)(u.E, {
|
||||
variant: 'outline',
|
||||
className: 'flex items-center gap-1',
|
||||
children: [
|
||||
(0, r.jsx)(x.A, {
|
||||
className: 'h-4 w-4 text-yellow-500',
|
||||
}),
|
||||
'Not tested',
|
||||
],
|
||||
})
|
||||
: 'testing' === j
|
||||
? (0, r.jsxs)(u.E, {
|
||||
variant: 'outline',
|
||||
className: 'flex items-center gap-1',
|
||||
children: [
|
||||
(0, r.jsx)(x.A, {
|
||||
className:
|
||||
'h-4 w-4 animate-pulse text-blue-500',
|
||||
}),
|
||||
'Testing...',
|
||||
],
|
||||
})
|
||||
: 'success' === j
|
||||
? (0, r.jsxs)(u.E, {
|
||||
variant: 'outline',
|
||||
className: 'flex items-center gap-1',
|
||||
children: [
|
||||
(0, r.jsx)(p.A, {
|
||||
className: 'h-4 w-4 text-green-500',
|
||||
}),
|
||||
'Connected',
|
||||
],
|
||||
})
|
||||
: (0, r.jsxs)(u.E, {
|
||||
variant: 'outline',
|
||||
className: 'flex items-center gap-1',
|
||||
children: [
|
||||
(0, r.jsx)(m.A, {
|
||||
className: 'h-4 w-4 text-red-500',
|
||||
}),
|
||||
'Failed',
|
||||
],
|
||||
})),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
(0, r.jsx)(c.Wu, {
|
||||
className: 'space-y-4',
|
||||
children: (0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'server-endpoint',
|
||||
children: 'Server Endpoint URL',
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'relative',
|
||||
children: [
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'server-endpoint',
|
||||
placeholder: 'https://ecash.routstr.info',
|
||||
value: e.endpoint,
|
||||
onChange: (e) => f('endpoint', e.target.value),
|
||||
className: 'pr-24',
|
||||
}),
|
||||
(0, r.jsx)(h.$, {
|
||||
type: 'button',
|
||||
variant: 'ghost',
|
||||
size: 'sm',
|
||||
className:
|
||||
'absolute top-0 right-0 h-full px-3 py-2 text-xs',
|
||||
onClick: () =>
|
||||
f('endpoint', 'https://ecash.routstr.info'),
|
||||
children: 'Use Default',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
(0, r.jsxs)(c.wL, {
|
||||
className: 'flex justify-between',
|
||||
children: [
|
||||
(0, r.jsx)(h.$, {
|
||||
variant: 'outline',
|
||||
onClick: g,
|
||||
disabled: !e.endpoint || 'testing' === j,
|
||||
children: 'Test Connection',
|
||||
}),
|
||||
(0, r.jsx)(h.$, {
|
||||
onClick: () => {
|
||||
try {
|
||||
(a(e),
|
||||
l.oR.success(
|
||||
'Server configuration saved successfully'
|
||||
));
|
||||
} catch (e) {
|
||||
(l.oR.error('Failed to save configuration'),
|
||||
console.error('Configuration save error:', e));
|
||||
}
|
||||
},
|
||||
children: 'Save Configuration',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
});
|
||||
}
|
||||
var v = a(9119),
|
||||
f = a(834),
|
||||
g = a(9442),
|
||||
w = a(989),
|
||||
N = a(7137),
|
||||
y = a(3728),
|
||||
b = a(7829);
|
||||
function C() {
|
||||
let [e, s] = (0, n.useState)({}),
|
||||
[t, i] = (0, n.useState)(!0),
|
||||
[u, p] = (0, n.useState)(!1),
|
||||
[m, j] = (0, n.useState)(''),
|
||||
[C, _] = (0, n.useState)(!1),
|
||||
[S, k] = (0, n.useState)(''),
|
||||
[R, A] = (0, n.useState)({
|
||||
current_password: '',
|
||||
new_password: '',
|
||||
confirm_password: '',
|
||||
}),
|
||||
[F, E] = (0, n.useState)(''),
|
||||
[P, B] = (0, n.useState)(!1);
|
||||
(0, n.useEffect)(() => {
|
||||
T();
|
||||
}, []);
|
||||
let T = async () => {
|
||||
try {
|
||||
(i(!0), j(''));
|
||||
let e = await v.zQ.getSettings();
|
||||
s(e);
|
||||
} catch (s) {
|
||||
let e =
|
||||
s instanceof Error ? s.message : 'Failed to load settings';
|
||||
(j(e), l.oR.error(e));
|
||||
} finally {
|
||||
i(!1);
|
||||
}
|
||||
},
|
||||
Z = async () => {
|
||||
try {
|
||||
(p(!0), j(''));
|
||||
let a = await v.zQ.updateSettings(e);
|
||||
(s(a), l.oR.success('Settings saved successfully'));
|
||||
} catch (s) {
|
||||
let e =
|
||||
s instanceof Error ? s.message : 'Failed to save settings';
|
||||
(j(e), l.oR.error(e));
|
||||
} finally {
|
||||
p(!1);
|
||||
}
|
||||
},
|
||||
J = async () => {
|
||||
try {
|
||||
if ((B(!0), E(''), R.new_password !== R.confirm_password))
|
||||
return void E('New passwords do not match');
|
||||
if (R.new_password.length < 6)
|
||||
return void E('New password must be at least 6 characters');
|
||||
let { apiClient: e } = await Promise.resolve().then(
|
||||
a.bind(a, 7916)
|
||||
);
|
||||
(await e.patch('/admin/api/password', {
|
||||
current_password: R.current_password,
|
||||
new_password: R.new_password,
|
||||
}),
|
||||
A({
|
||||
current_password: '',
|
||||
new_password: '',
|
||||
confirm_password: '',
|
||||
}),
|
||||
l.oR.success('Password updated successfully'));
|
||||
} catch (s) {
|
||||
let e =
|
||||
s instanceof Error ? s.message : 'Failed to update password';
|
||||
(E(e), l.oR.error(e));
|
||||
} finally {
|
||||
B(!1);
|
||||
}
|
||||
},
|
||||
U = (e, a) => {
|
||||
s((s) => ({ ...s, [e]: a }));
|
||||
},
|
||||
$ = (e) => {
|
||||
s((s) => {
|
||||
var a;
|
||||
return {
|
||||
...s,
|
||||
cashu_mints:
|
||||
(null == (a = s.cashu_mints)
|
||||
? void 0
|
||||
: a.filter((s, a) => a !== e)) || [],
|
||||
};
|
||||
});
|
||||
},
|
||||
L = (s, a, n) => {
|
||||
let t = e[s] || '';
|
||||
return (0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, { htmlFor: s, children: a }),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'flex gap-2',
|
||||
children: [
|
||||
(0, r.jsx)(d.p, {
|
||||
id: s,
|
||||
type: C ? 'text' : 'password',
|
||||
value: C ? t : t ? '••••••••' : '',
|
||||
onChange: (e) => U(s, e.target.value),
|
||||
placeholder: n,
|
||||
className: 'flex-1',
|
||||
}),
|
||||
(0, r.jsx)(h.$, {
|
||||
type: 'button',
|
||||
variant: 'outline',
|
||||
size: 'icon',
|
||||
onClick: () => _(!C),
|
||||
children: C
|
||||
? (0, r.jsx)(w.A, { className: 'h-4 w-4' })
|
||||
: (0, r.jsx)(N.A, { className: 'h-4 w-4' }),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
});
|
||||
};
|
||||
return t
|
||||
? (0, r.jsx)('div', {
|
||||
className: 'flex items-center justify-center py-8',
|
||||
children: (0, r.jsx)('div', {
|
||||
className: 'text-muted-foreground',
|
||||
children: 'Loading settings...',
|
||||
}),
|
||||
})
|
||||
: (0, r.jsxs)(r.Fragment, {
|
||||
children: [
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'mb-6',
|
||||
children: [
|
||||
(0, r.jsx)('h2', {
|
||||
className: 'text-xl font-semibold tracking-tight',
|
||||
children: 'Admin Settings',
|
||||
}),
|
||||
(0, r.jsx)('p', {
|
||||
className: 'text-muted-foreground',
|
||||
children: 'Configure your Routstr node settings',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
m &&
|
||||
(0, r.jsxs)(g.Fc, {
|
||||
variant: 'destructive',
|
||||
className: 'mb-6',
|
||||
children: [
|
||||
(0, r.jsx)(x.A, { className: 'h-4 w-4' }),
|
||||
(0, r.jsx)(g.TN, { children: m }),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-6',
|
||||
children: [
|
||||
(0, r.jsxs)(c.Zp, {
|
||||
children: [
|
||||
(0, r.jsxs)(c.aR, {
|
||||
children: [
|
||||
(0, r.jsx)(c.ZB, { children: 'Basic Information' }),
|
||||
(0, r.jsx)(c.BT, {
|
||||
children:
|
||||
'Configure the basic node information and branding',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Wu, {
|
||||
className: 'space-y-4',
|
||||
children: [
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'name',
|
||||
children: 'Node Name',
|
||||
}),
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'name',
|
||||
value: e.name || '',
|
||||
onChange: (e) => U('name', e.target.value),
|
||||
placeholder: 'ARoutstrNode',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'description',
|
||||
children: 'Description',
|
||||
}),
|
||||
(0, r.jsx)(f.T, {
|
||||
id: 'description',
|
||||
value: e.description || '',
|
||||
onChange: (e) =>
|
||||
U('description', e.target.value),
|
||||
placeholder: 'A Routstr Node',
|
||||
rows: 3,
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'http_url',
|
||||
children: 'HTTP URL',
|
||||
}),
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'http_url',
|
||||
value: e.http_url || '',
|
||||
onChange: (e) =>
|
||||
U('http_url', e.target.value),
|
||||
placeholder: 'https://your-node.com',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'onion_url',
|
||||
children: 'Onion URL (Optional)',
|
||||
}),
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'onion_url',
|
||||
value: e.onion_url || '',
|
||||
onChange: (e) =>
|
||||
U('onion_url', e.target.value),
|
||||
placeholder: 'http://your-node.onion',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Zp, {
|
||||
children: [
|
||||
(0, r.jsxs)(c.aR, {
|
||||
children: [
|
||||
(0, r.jsx)(c.ZB, {
|
||||
children: 'Nostr Configuration',
|
||||
}),
|
||||
(0, r.jsx)(c.BT, {
|
||||
children:
|
||||
'Configure Nostr public and private keys',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Wu, {
|
||||
className: 'space-y-4',
|
||||
children: [
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'npub',
|
||||
children: 'Public Key (npub)',
|
||||
}),
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'npub',
|
||||
value: e.npub || '',
|
||||
onChange: (e) => U('npub', e.target.value),
|
||||
placeholder: 'npub1...',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
L('nsec', 'Private Key (nsec)', 'nsec1...'),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Zp, {
|
||||
children: [
|
||||
(0, r.jsxs)(c.aR, {
|
||||
children: [
|
||||
(0, r.jsx)(c.ZB, { children: 'Security Settings' }),
|
||||
(0, r.jsx)(c.BT, {
|
||||
children:
|
||||
'Configure authentication and API access',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsx)(c.Wu, {
|
||||
className: 'space-y-4',
|
||||
children: L(
|
||||
'upstream_api_key',
|
||||
'Upstream API Key',
|
||||
'Enter API key'
|
||||
),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Zp, {
|
||||
children: [
|
||||
(0, r.jsxs)(c.aR, {
|
||||
children: [
|
||||
(0, r.jsx)(c.ZB, { children: 'Cashu Mints' }),
|
||||
(0, r.jsx)(c.BT, {
|
||||
children:
|
||||
'Configure Cashu mint endpoints for payments',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Wu, {
|
||||
className: 'space-y-4',
|
||||
children: [
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'newMint',
|
||||
children: 'Add Mint URL',
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'flex gap-2',
|
||||
children: [
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'newMint',
|
||||
value: S,
|
||||
onChange: (e) => k(e.target.value),
|
||||
placeholder: 'https://mint.example.com',
|
||||
}),
|
||||
(0, r.jsx)(h.$, {
|
||||
onClick: () => {
|
||||
S.trim() &&
|
||||
(s((e) => ({
|
||||
...e,
|
||||
cashu_mints: [
|
||||
...(e.cashu_mints || []),
|
||||
S.trim(),
|
||||
],
|
||||
})),
|
||||
k(''));
|
||||
},
|
||||
disabled: !S.trim(),
|
||||
children: 'Add Mint',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
e.cashu_mints &&
|
||||
e.cashu_mints.length > 0 &&
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
children: 'Configured Mints',
|
||||
}),
|
||||
(0, r.jsx)('div', {
|
||||
className: 'space-y-2',
|
||||
children: e.cashu_mints.map((e, s) =>
|
||||
(0, r.jsxs)(
|
||||
'div',
|
||||
{
|
||||
className:
|
||||
'flex items-center gap-2 rounded border p-2',
|
||||
children: [
|
||||
(0, r.jsx)('span', {
|
||||
className: 'flex-1 text-sm',
|
||||
children: e,
|
||||
}),
|
||||
(0, r.jsx)(h.$, {
|
||||
variant: 'outline',
|
||||
size: 'sm',
|
||||
onClick: () => $(s),
|
||||
children: 'Remove',
|
||||
}),
|
||||
],
|
||||
},
|
||||
s
|
||||
)
|
||||
),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsx)(c.Zp, {
|
||||
className: 'mt-6',
|
||||
children: (0, r.jsxs)(c.wL, {
|
||||
className: 'flex justify-between',
|
||||
children: [
|
||||
(0, r.jsxs)(h.$, {
|
||||
variant: 'outline',
|
||||
onClick: T,
|
||||
disabled: t || u,
|
||||
children: [
|
||||
(0, r.jsx)(y.A, { className: 'mr-2 h-4 w-4' }),
|
||||
'Reload',
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(h.$, {
|
||||
onClick: Z,
|
||||
disabled: t || u,
|
||||
children: [
|
||||
(0, r.jsx)(b.A, { className: 'mr-2 h-4 w-4' }),
|
||||
u ? 'Saving...' : 'Save Settings',
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
(0, r.jsxs)(c.Zp, {
|
||||
children: [
|
||||
(0, r.jsxs)(c.aR, {
|
||||
children: [
|
||||
(0, r.jsx)(c.ZB, {
|
||||
children: 'Change Admin Password',
|
||||
}),
|
||||
(0, r.jsx)(c.BT, {
|
||||
children:
|
||||
'Update your admin password for enhanced security',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)(c.Wu, {
|
||||
className: 'space-y-4',
|
||||
children: [
|
||||
F &&
|
||||
(0, r.jsxs)(g.Fc, {
|
||||
variant: 'destructive',
|
||||
children: [
|
||||
(0, r.jsx)(x.A, { className: 'h-4 w-4' }),
|
||||
(0, r.jsx)(g.TN, { children: F }),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'current_password',
|
||||
children: 'Current Password',
|
||||
}),
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'current_password',
|
||||
type: 'password',
|
||||
value: R.current_password,
|
||||
onChange: (e) =>
|
||||
A((s) => ({
|
||||
...s,
|
||||
current_password: e.target.value,
|
||||
})),
|
||||
placeholder: 'Enter current password',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'new_password',
|
||||
children: 'New Password',
|
||||
}),
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'new_password',
|
||||
type: 'password',
|
||||
value: R.new_password,
|
||||
onChange: (e) =>
|
||||
A((s) => ({
|
||||
...s,
|
||||
new_password: e.target.value,
|
||||
})),
|
||||
placeholder:
|
||||
'Enter new password (min 6 characters)',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsxs)('div', {
|
||||
className: 'space-y-2',
|
||||
children: [
|
||||
(0, r.jsx)(o.J, {
|
||||
htmlFor: 'confirm_password',
|
||||
children: 'Confirm New Password',
|
||||
}),
|
||||
(0, r.jsx)(d.p, {
|
||||
id: 'confirm_password',
|
||||
type: 'password',
|
||||
value: R.confirm_password,
|
||||
onChange: (e) =>
|
||||
A((s) => ({
|
||||
...s,
|
||||
confirm_password: e.target.value,
|
||||
})),
|
||||
placeholder: 'Confirm new password',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsx)(c.wL, {
|
||||
children: (0, r.jsxs)(h.$, {
|
||||
onClick: J,
|
||||
disabled:
|
||||
P ||
|
||||
!R.current_password ||
|
||||
!R.new_password ||
|
||||
!R.confirm_password,
|
||||
children: [
|
||||
(0, r.jsx)(b.A, { className: 'mr-2 h-4 w-4' }),
|
||||
P ? 'Updating...' : 'Update Password',
|
||||
],
|
||||
}),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
});
|
||||
}
|
||||
var _ = a(4756),
|
||||
S = a(7569),
|
||||
k = a(953);
|
||||
function R() {
|
||||
return (0, r.jsxs)(k.SidebarProvider, {
|
||||
children: [
|
||||
(0, r.jsx)(S.AppSidebar, { variant: 'inset' }),
|
||||
(0, r.jsxs)(k.SidebarInset, {
|
||||
children: [
|
||||
(0, r.jsx)(_.SiteHeader, {}),
|
||||
(0, r.jsx)('div', {
|
||||
className: 'flex flex-1 flex-col',
|
||||
children: (0, r.jsxs)('div', {
|
||||
className:
|
||||
'@container/main flex flex-1 flex-col gap-4 p-4 md:gap-8 md:p-8',
|
||||
children: [
|
||||
(0, r.jsx)('div', {
|
||||
className: 'flex items-center',
|
||||
children: (0, r.jsx)('h1', {
|
||||
className: 'text-2xl font-bold tracking-tight',
|
||||
children: 'Settings',
|
||||
}),
|
||||
}),
|
||||
(0, r.jsxs)(t.tU, {
|
||||
defaultValue: 'admin',
|
||||
className: 'w-full',
|
||||
children: [
|
||||
(0, r.jsx)(t.j7, {
|
||||
className: 'mb-4',
|
||||
children: (0, r.jsx)(t.Xi, {
|
||||
value: 'admin',
|
||||
children: 'Admin Settings',
|
||||
}),
|
||||
}),
|
||||
(0, r.jsx)(t.av, {
|
||||
value: 'server',
|
||||
children: (0, r.jsx)(j, {}),
|
||||
}),
|
||||
(0, r.jsx)(t.av, {
|
||||
value: 'admin',
|
||||
children: (0, r.jsx)(C, {}),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, r.jsx)(l.l$, {}),
|
||||
],
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
(e) => {
|
||||
var s = (s) => e((e.s = s));
|
||||
(e.O(0, [363, 222, 230, 978, 651, 236, 255, 945, 497, 358], () => s(2739)),
|
||||
(_N_E = e.O()));
|
||||
},
|
||||
]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,626 @@
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[790],
|
||||
{
|
||||
2127: (e, t, s) => {
|
||||
Promise.resolve().then(s.bind(s, 7082));
|
||||
},
|
||||
2533: (e, t, s) => {
|
||||
'use strict';
|
||||
s.d(t, { A: () => a });
|
||||
let a = (0, s(3929).A)('copy', [
|
||||
[
|
||||
'rect',
|
||||
{
|
||||
width: '14',
|
||||
height: '14',
|
||||
x: '8',
|
||||
y: '8',
|
||||
rx: '2',
|
||||
ry: '2',
|
||||
key: '17jyea',
|
||||
},
|
||||
],
|
||||
[
|
||||
'path',
|
||||
{
|
||||
d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2',
|
||||
key: 'zix9uf',
|
||||
},
|
||||
],
|
||||
]);
|
||||
},
|
||||
3728: (e, t, s) => {
|
||||
'use strict';
|
||||
s.d(t, { A: () => a });
|
||||
let a = (0, s(3929).A)('refresh-cw', [
|
||||
[
|
||||
'path',
|
||||
{
|
||||
d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8',
|
||||
key: 'v9h5vc',
|
||||
},
|
||||
],
|
||||
['path', { d: 'M21 3v5h-5', key: '1q7to0' }],
|
||||
[
|
||||
'path',
|
||||
{
|
||||
d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16',
|
||||
key: '3uifl3',
|
||||
},
|
||||
],
|
||||
['path', { d: 'M8 16H3v5', key: '1cv678' }],
|
||||
]);
|
||||
},
|
||||
7082: (e, t, s) => {
|
||||
'use strict';
|
||||
(s.r(t), s.d(t, { default: () => E }));
|
||||
var a = s(3422),
|
||||
r = s(4398),
|
||||
n = s(953),
|
||||
i = s(7569),
|
||||
l = s(4756),
|
||||
c = s(2349),
|
||||
o = s(2745),
|
||||
d = s(3728),
|
||||
x = s(9675),
|
||||
h = s(2533),
|
||||
m = s(3929);
|
||||
let u = (0, m.A)('chevron-left', [
|
||||
['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }],
|
||||
]),
|
||||
v = (0, m.A)('chevron-right', [
|
||||
['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],
|
||||
]);
|
||||
var f = s(9442),
|
||||
g = s(3648),
|
||||
p = s(9183);
|
||||
function j(e) {
|
||||
let { className: t, ...s } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'table-container',
|
||||
className: 'relative w-full overflow-x-auto',
|
||||
children: (0, a.jsx)('table', {
|
||||
'data-slot': 'table',
|
||||
className: (0, p.cn)('w-full caption-bottom text-sm', t),
|
||||
...s,
|
||||
}),
|
||||
});
|
||||
}
|
||||
function b(e) {
|
||||
let { className: t, ...s } = e;
|
||||
return (0, a.jsx)('thead', {
|
||||
'data-slot': 'table-header',
|
||||
className: (0, p.cn)('[&_tr]:border-b', t),
|
||||
...s,
|
||||
});
|
||||
}
|
||||
function y(e) {
|
||||
let { className: t, ...s } = e;
|
||||
return (0, a.jsx)('tbody', {
|
||||
'data-slot': 'table-body',
|
||||
className: (0, p.cn)('[&_tr:last-child]:border-0', t),
|
||||
...s,
|
||||
});
|
||||
}
|
||||
function N(e) {
|
||||
let { className: t, ...s } = e;
|
||||
return (0, a.jsx)('tr', {
|
||||
'data-slot': 'table-row',
|
||||
className: (0, p.cn)(
|
||||
'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',
|
||||
t
|
||||
),
|
||||
...s,
|
||||
});
|
||||
}
|
||||
function w(e) {
|
||||
let { className: t, ...s } = e;
|
||||
return (0, a.jsx)('th', {
|
||||
'data-slot': 'table-head',
|
||||
className: (0, p.cn)(
|
||||
'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',
|
||||
t
|
||||
),
|
||||
...s,
|
||||
});
|
||||
}
|
||||
function k(e) {
|
||||
let { className: t, ...s } = e;
|
||||
return (0, a.jsx)('td', {
|
||||
'data-slot': 'table-cell',
|
||||
className: (0, p.cn)(
|
||||
'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',
|
||||
t
|
||||
),
|
||||
...s,
|
||||
});
|
||||
}
|
||||
var _ = s(8561),
|
||||
A = s(6545),
|
||||
C = s(3831),
|
||||
F = s(7916);
|
||||
let T = {
|
||||
getPaginatedTransactions: async (e, t) => {
|
||||
try {
|
||||
return await F.apiClient.get(
|
||||
'/api/transactions/paginated/'.concat(e, '/').concat(t)
|
||||
);
|
||||
} catch (e) {
|
||||
throw (
|
||||
console.error('Failed to fetch paginated transactions:', e),
|
||||
Error('Failed to fetch paginated transactions')
|
||||
);
|
||||
}
|
||||
},
|
||||
};
|
||||
function E() {
|
||||
let [e, t] = (0, r.useState)(1),
|
||||
{
|
||||
data: s,
|
||||
isLoading: m,
|
||||
error: p,
|
||||
refetch: F,
|
||||
} = (0, c.I)({
|
||||
queryKey: ['transactions', e, 20],
|
||||
queryFn: () => T.getPaginatedTransactions(e, 20),
|
||||
refetchOnWindowFocus: !1,
|
||||
retry: 1,
|
||||
staleTime: 3e4,
|
||||
}),
|
||||
E = (null == s ? void 0 : s.transactions) || [],
|
||||
P = (null == s ? void 0 : s.total_pages) || 0,
|
||||
S = (null == s ? void 0 : s.total) || 0,
|
||||
z = (e) => new Date(e).toLocaleString(),
|
||||
M = (e) => ''.concat(parseInt(e).toLocaleString(), ' msats'),
|
||||
$ = (e) =>
|
||||
e.length <= 20
|
||||
? e
|
||||
: ''.concat(e.slice(0, 10), '...').concat(e.slice(-10)),
|
||||
I = async (e) => {
|
||||
try {
|
||||
(await navigator.clipboard.writeText(e),
|
||||
C.oR.success('Token copied to clipboard!'));
|
||||
} catch (e) {
|
||||
(console.error('Failed to copy to clipboard:', e),
|
||||
C.oR.error('Failed to copy token'));
|
||||
}
|
||||
},
|
||||
q = (e) => {
|
||||
e >= 1 && e <= P && t(e);
|
||||
};
|
||||
return (0, a.jsx)(A.Bc, {
|
||||
children: (0, a.jsxs)(n.SidebarProvider, {
|
||||
children: [
|
||||
(0, a.jsx)(i.AppSidebar, { variant: 'inset' }),
|
||||
(0, a.jsxs)(n.SidebarInset, {
|
||||
children: [
|
||||
(0, a.jsx)(l.SiteHeader, {}),
|
||||
(0, a.jsx)('div', {
|
||||
className: 'flex flex-1 flex-col',
|
||||
children: (0, a.jsxs)('div', {
|
||||
className:
|
||||
'@container/main flex flex-1 flex-col gap-4 p-4 md:gap-8 md:p-8',
|
||||
children: [
|
||||
(0, a.jsxs)('div', {
|
||||
className: 'mb-6 flex items-center justify-between',
|
||||
children: [
|
||||
(0, a.jsxs)('div', {
|
||||
children: [
|
||||
(0, a.jsx)('h1', {
|
||||
className:
|
||||
'text-2xl font-bold tracking-tight',
|
||||
children: 'Transaction History',
|
||||
}),
|
||||
(0, a.jsx)('p', {
|
||||
className: 'text-muted-foreground text-sm',
|
||||
children:
|
||||
'View all Cashu token transactions processed by the system',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, a.jsxs)(g.$, {
|
||||
onClick: () => F(),
|
||||
variant: 'outline',
|
||||
size: 'sm',
|
||||
disabled: m,
|
||||
children: [
|
||||
(0, a.jsx)(d.A, {
|
||||
className: 'mr-2 h-4 w-4 '.concat(
|
||||
m ? 'animate-spin' : ''
|
||||
),
|
||||
}),
|
||||
'Refresh',
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
m
|
||||
? (0, a.jsx)('div', {
|
||||
className: 'space-y-4',
|
||||
children: [
|
||||
void 0,
|
||||
void 0,
|
||||
void 0,
|
||||
void 0,
|
||||
void 0,
|
||||
].map((e, t) =>
|
||||
(0, a.jsx)(
|
||||
o.E,
|
||||
{ className: 'h-[120px] w-full' },
|
||||
t
|
||||
)
|
||||
),
|
||||
})
|
||||
: p
|
||||
? (0, a.jsxs)(f.Fc, {
|
||||
variant: 'destructive',
|
||||
children: [
|
||||
(0, a.jsx)(x.A, { className: 'h-4 w-4' }),
|
||||
(0, a.jsxs)(f.TN, {
|
||||
children: [
|
||||
'Failed to load transactions.',
|
||||
' ',
|
||||
p instanceof Error
|
||||
? p.message
|
||||
: 'Please check if the server is running and try refreshing the page.',
|
||||
],
|
||||
}),
|
||||
],
|
||||
})
|
||||
: 0 === E.length
|
||||
? (0, a.jsx)('div', {
|
||||
className: 'py-8 text-center',
|
||||
children: (0, a.jsx)('p', {
|
||||
className: 'text-muted-foreground',
|
||||
children: 'No transactions found.',
|
||||
}),
|
||||
})
|
||||
: (0, a.jsxs)('div', {
|
||||
className: 'space-y-4',
|
||||
children: [
|
||||
(0, a.jsxs)('div', {
|
||||
className:
|
||||
'flex items-center justify-between',
|
||||
children: [
|
||||
(0, a.jsxs)('div', {
|
||||
className:
|
||||
'text-muted-foreground text-sm',
|
||||
children: [
|
||||
'Showing ',
|
||||
(e - 1) * 20 + 1,
|
||||
' to',
|
||||
' ',
|
||||
Math.min(20 * e, S),
|
||||
' of ',
|
||||
S,
|
||||
' ',
|
||||
'transactions',
|
||||
],
|
||||
}),
|
||||
(0, a.jsxs)('div', {
|
||||
className:
|
||||
'text-muted-foreground text-sm',
|
||||
children: ['Page ', e, ' of ', P],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
(0, a.jsx)('div', {
|
||||
className: 'rounded-md border',
|
||||
children: (0, a.jsxs)(j, {
|
||||
children: [
|
||||
(0, a.jsx)(b, {
|
||||
children: (0, a.jsxs)(N, {
|
||||
children: [
|
||||
(0, a.jsx)(w, {
|
||||
className: 'w-[100px]',
|
||||
children: 'ID',
|
||||
}),
|
||||
(0, a.jsx)(w, {
|
||||
children: 'Date & Time',
|
||||
}),
|
||||
(0, a.jsx)(w, {
|
||||
children: 'Amount',
|
||||
}),
|
||||
(0, a.jsx)(w, {
|
||||
className: 'w-[400px]',
|
||||
children: 'Cashu Token',
|
||||
}),
|
||||
(0, a.jsx)(w, {
|
||||
className: 'w-[60px]',
|
||||
children: 'Actions',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
(0, a.jsx)(y, {
|
||||
children: E.map((e) =>
|
||||
(0, a.jsxs)(
|
||||
N,
|
||||
{
|
||||
children: [
|
||||
(0, a.jsx)(k, {
|
||||
className:
|
||||
'font-mono text-xs',
|
||||
children: e.id.slice(
|
||||
0,
|
||||
8
|
||||
),
|
||||
}),
|
||||
(0, a.jsx)(k, {
|
||||
children: (0, a.jsx)(
|
||||
'div',
|
||||
{
|
||||
className: 'text-sm',
|
||||
children: z(
|
||||
e.created_at
|
||||
),
|
||||
}
|
||||
),
|
||||
}),
|
||||
(0, a.jsx)(k, {
|
||||
children: (0, a.jsx)(
|
||||
_.E,
|
||||
{
|
||||
variant: 'secondary',
|
||||
children: M(e.amount),
|
||||
}
|
||||
),
|
||||
}),
|
||||
(0, a.jsx)(k, {
|
||||
children: (0, a.jsx)(
|
||||
'div',
|
||||
{
|
||||
className:
|
||||
'flex items-center gap-2',
|
||||
children: (0, a.jsxs)(
|
||||
A.m_,
|
||||
{
|
||||
children: [
|
||||
(0, a.jsx)(
|
||||
A.k$,
|
||||
{
|
||||
asChild: !0,
|
||||
children:
|
||||
(0,
|
||||
a.jsx)(
|
||||
'p',
|
||||
{
|
||||
className:
|
||||
'max-w-[300px] cursor-pointer truncate rounded px-1 py-0.5 font-mono text-xs hover:bg-gray-100',
|
||||
children:
|
||||
$(
|
||||
e.token
|
||||
),
|
||||
}
|
||||
),
|
||||
}
|
||||
),
|
||||
(0, a.jsx)(
|
||||
A.ZI,
|
||||
{
|
||||
className:
|
||||
'max-w-md break-all',
|
||||
children:
|
||||
(0,
|
||||
a.jsx)(
|
||||
'p',
|
||||
{
|
||||
className:
|
||||
'font-mono text-xs',
|
||||
children:
|
||||
e.token,
|
||||
}
|
||||
),
|
||||
}
|
||||
),
|
||||
],
|
||||
}
|
||||
),
|
||||
}
|
||||
),
|
||||
}),
|
||||
(0, a.jsx)(k, {
|
||||
children: (0, a.jsx)(
|
||||
g.$,
|
||||
{
|
||||
variant: 'ghost',
|
||||
size: 'sm',
|
||||
onClick: () =>
|
||||
I(e.token),
|
||||
className:
|
||||
'h-8 w-8 p-0',
|
||||
children: (0, a.jsx)(
|
||||
h.A,
|
||||
{
|
||||
className:
|
||||
'h-4 w-4',
|
||||
}
|
||||
),
|
||||
}
|
||||
),
|
||||
}),
|
||||
],
|
||||
},
|
||||
e.id
|
||||
)
|
||||
),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
P > 1 &&
|
||||
(0, a.jsxs)('div', {
|
||||
className:
|
||||
'flex items-center justify-between',
|
||||
children: [
|
||||
(0, a.jsxs)('div', {
|
||||
className:
|
||||
'text-muted-foreground text-sm',
|
||||
children: ['Page ', e, ' of ', P],
|
||||
}),
|
||||
(0, a.jsxs)('div', {
|
||||
className:
|
||||
'flex items-center space-x-2',
|
||||
children: [
|
||||
(0, a.jsxs)(g.$, {
|
||||
variant: 'outline',
|
||||
size: 'sm',
|
||||
onClick: () => {
|
||||
e > 1 && t(e - 1);
|
||||
},
|
||||
disabled: 1 === e,
|
||||
children: [
|
||||
(0, a.jsx)(u, {
|
||||
className: 'mr-1 h-4 w-4',
|
||||
}),
|
||||
'Previous',
|
||||
],
|
||||
}),
|
||||
(0, a.jsx)('div', {
|
||||
className:
|
||||
'flex items-center space-x-1',
|
||||
children: Array.from(
|
||||
{ length: Math.min(5, P) },
|
||||
(t, s) => {
|
||||
let r =
|
||||
e <= 3
|
||||
? s + 1
|
||||
: e >= P - 2
|
||||
? P - 4 + s
|
||||
: e - 2 + s;
|
||||
return r < 1 || r > P
|
||||
? null
|
||||
: (0, a.jsx)(
|
||||
g.$,
|
||||
{
|
||||
variant:
|
||||
e === r
|
||||
? 'default'
|
||||
: 'outline',
|
||||
size: 'sm',
|
||||
onClick: () => q(r),
|
||||
className:
|
||||
'h-9 w-9 p-0',
|
||||
children: r,
|
||||
},
|
||||
r
|
||||
);
|
||||
}
|
||||
),
|
||||
}),
|
||||
(0, a.jsxs)(g.$, {
|
||||
variant: 'outline',
|
||||
size: 'sm',
|
||||
onClick: () => {
|
||||
e < P && t(e + 1);
|
||||
},
|
||||
disabled: e === P,
|
||||
children: [
|
||||
'Next',
|
||||
(0, a.jsx)(v, {
|
||||
className: 'ml-1 h-4 w-4',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
});
|
||||
}
|
||||
},
|
||||
8561: (e, t, s) => {
|
||||
'use strict';
|
||||
s.d(t, { E: () => l });
|
||||
var a = s(3422);
|
||||
s(4398);
|
||||
var r = s(4676),
|
||||
n = s(9183);
|
||||
let i = (0, r.F)(
|
||||
'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
default:
|
||||
'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',
|
||||
secondary:
|
||||
'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
||||
destructive:
|
||||
'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',
|
||||
outline: 'text-foreground',
|
||||
success:
|
||||
'border-transparent bg-green-500 text-white hover:bg-green-500/80',
|
||||
warning:
|
||||
'border-transparent bg-yellow-500 text-white hover:bg-yellow-500/80',
|
||||
error:
|
||||
'border-transparent bg-red-500 text-white hover:bg-red-500/80',
|
||||
},
|
||||
},
|
||||
defaultVariants: { variant: 'default' },
|
||||
}
|
||||
);
|
||||
function l(e) {
|
||||
let { className: t, variant: s, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
className: (0, n.cn)(i({ variant: s }), t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
},
|
||||
9442: (e, t, s) => {
|
||||
'use strict';
|
||||
s.d(t, { Fc: () => l, TN: () => c });
|
||||
var a = s(3422);
|
||||
s(4398);
|
||||
var r = s(4676),
|
||||
n = s(9183);
|
||||
let i = (0, r.F)(
|
||||
'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
default: 'bg-card text-card-foreground',
|
||||
destructive:
|
||||
'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',
|
||||
},
|
||||
},
|
||||
defaultVariants: { variant: 'default' },
|
||||
}
|
||||
);
|
||||
function l(e) {
|
||||
let { className: t, variant: s, ...r } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'alert',
|
||||
role: 'alert',
|
||||
className: (0, n.cn)(i({ variant: s }), t),
|
||||
...r,
|
||||
});
|
||||
}
|
||||
function c(e) {
|
||||
let { className: t, ...s } = e;
|
||||
return (0, a.jsx)('div', {
|
||||
'data-slot': 'alert-description',
|
||||
className: (0, n.cn)(
|
||||
'text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed',
|
||||
t
|
||||
),
|
||||
...s,
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
(e) => {
|
||||
var t = (t) => e((e.s = t));
|
||||
(e.O(0, [363, 222, 230, 29, 730, 236, 945, 497, 358], () => t(2127)),
|
||||
(_N_E = e.O()));
|
||||
},
|
||||
]);
|
||||
@@ -1 +1,222 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[305],{1064:(e,r,t)=>{"use strict";var s=t(8);t.o(s,"usePathname")&&t.d(r,{usePathname:function(){return s.usePathname}}),t.o(s,"useRouter")&&t.d(r,{useRouter:function(){return s.useRouter}})},2818:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>o});var s=t(3422),a=t(3648),i=t(1064);let n=(0,t(3929).A)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);function o(){let e=(0,i.useRouter)();return(0,s.jsx)("div",{className:"bg-background flex min-h-screen flex-col items-center justify-center p-4",children:(0,s.jsxs)("div",{className:"flex max-w-md flex-col items-center space-y-6 text-center",children:[(0,s.jsx)(n,{className:"text-destructive h-24 w-24"}),(0,s.jsx)("h1",{className:"text-4xl font-bold",children:"Access Denied"}),(0,s.jsx)("p",{className:"text-muted-foreground text-lg",children:"You don't have permission to access this page. Please contact your administrator if you believe this is an error."}),(0,s.jsxs)("div",{className:"flex gap-4",children:[(0,s.jsx)(a.$,{onClick:()=>e.push("/"),children:"Go to Dashboard"}),(0,s.jsx)(a.$,{variant:"outline",onClick:()=>e.back(),children:"Go Back"})]})]})})}},3648:(e,r,t)=>{"use strict";t.d(r,{$:()=>d,r:()=>o});var s=t(3422);t(4398);var a=t(6950),i=t(4676),n=t(9183);let o=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function d(e){let{className:r,variant:t,size:i,asChild:d=!1,...c}=e,l=d?a.DX:"button";return(0,s.jsx)(l,{"data-slot":"button",className:(0,n.cn)(o({variant:t,size:i,className:r})),...c})}},3929:(e,r,t)=>{"use strict";t.d(r,{A:()=>u});var s=t(4398);let a=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),i=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,r,t)=>t?t.toUpperCase():r.toLowerCase()),n=e=>{let r=i(e);return r.charAt(0).toUpperCase()+r.slice(1)},o=function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return r.filter((e,r,t)=>!!e&&""!==e.trim()&&t.indexOf(e)===r).join(" ").trim()},d=e=>{for(let r in e)if(r.startsWith("aria-")||"role"===r||"title"===r)return!0};var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,s.forwardRef)((e,r)=>{let{color:t="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:n,className:l="",children:u,iconNode:h,...v}=e;return(0,s.createElement)("svg",{ref:r,...c,width:a,height:a,stroke:t,strokeWidth:n?24*Number(i)/Number(a):i,className:o("lucide",l),...!u&&!d(v)&&{"aria-hidden":"true"},...v},[...h.map(e=>{let[r,t]=e;return(0,s.createElement)(r,t)}),...Array.isArray(u)?u:[u]])}),u=(e,r)=>{let t=(0,s.forwardRef)((t,i)=>{let{className:d,...c}=t;return(0,s.createElement)(l,{ref:i,iconNode:r,className:o("lucide-".concat(a(n(e))),"lucide-".concat(e),d),...c})});return t.displayName=n(e),t}},6090:(e,r,t)=>{Promise.resolve().then(t.bind(t,2818))},9183:(e,r,t)=>{"use strict";t.d(r,{cn:()=>i});var s=t(8082),a=t(4966);function i(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(0,a.QP)((0,s.$)(r))}}},e=>{var r=r=>e(e.s=r);e.O(0,[222,945,497,358],()=>r(6090)),_N_E=e.O()}]);
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[305],
|
||||
{
|
||||
1064: (e, r, t) => {
|
||||
'use strict';
|
||||
var s = t(8);
|
||||
(t.o(s, 'usePathname') &&
|
||||
t.d(r, {
|
||||
usePathname: function () {
|
||||
return s.usePathname;
|
||||
},
|
||||
}),
|
||||
t.o(s, 'useRouter') &&
|
||||
t.d(r, {
|
||||
useRouter: function () {
|
||||
return s.useRouter;
|
||||
},
|
||||
}));
|
||||
},
|
||||
2818: (e, r, t) => {
|
||||
'use strict';
|
||||
(t.r(r), t.d(r, { default: () => o }));
|
||||
var s = t(3422),
|
||||
a = t(3648),
|
||||
i = t(1064);
|
||||
let n = (0, t(3929).A)('shield-alert', [
|
||||
[
|
||||
'path',
|
||||
{
|
||||
d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',
|
||||
key: 'oel41y',
|
||||
},
|
||||
],
|
||||
['path', { d: 'M12 8v4', key: '1got3b' }],
|
||||
['path', { d: 'M12 16h.01', key: '1drbdi' }],
|
||||
]);
|
||||
function o() {
|
||||
let e = (0, i.useRouter)();
|
||||
return (0, s.jsx)('div', {
|
||||
className:
|
||||
'bg-background flex min-h-screen flex-col items-center justify-center p-4',
|
||||
children: (0, s.jsxs)('div', {
|
||||
className:
|
||||
'flex max-w-md flex-col items-center space-y-6 text-center',
|
||||
children: [
|
||||
(0, s.jsx)(n, { className: 'text-destructive h-24 w-24' }),
|
||||
(0, s.jsx)('h1', {
|
||||
className: 'text-4xl font-bold',
|
||||
children: 'Access Denied',
|
||||
}),
|
||||
(0, s.jsx)('p', {
|
||||
className: 'text-muted-foreground text-lg',
|
||||
children:
|
||||
"You don't have permission to access this page. Please contact your administrator if you believe this is an error.",
|
||||
}),
|
||||
(0, s.jsxs)('div', {
|
||||
className: 'flex gap-4',
|
||||
children: [
|
||||
(0, s.jsx)(a.$, {
|
||||
onClick: () => e.push('/'),
|
||||
children: 'Go to Dashboard',
|
||||
}),
|
||||
(0, s.jsx)(a.$, {
|
||||
variant: 'outline',
|
||||
onClick: () => e.back(),
|
||||
children: 'Go Back',
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
}),
|
||||
});
|
||||
}
|
||||
},
|
||||
3648: (e, r, t) => {
|
||||
'use strict';
|
||||
t.d(r, { $: () => d, r: () => o });
|
||||
var s = t(3422);
|
||||
t(4398);
|
||||
var a = t(6950),
|
||||
i = t(4676),
|
||||
n = t(9183);
|
||||
let o = (0, i.F)(
|
||||
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
default:
|
||||
'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',
|
||||
destructive:
|
||||
'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
|
||||
outline:
|
||||
'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
|
||||
secondary:
|
||||
'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',
|
||||
ghost:
|
||||
'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
|
||||
link: 'text-primary underline-offset-4 hover:underline',
|
||||
},
|
||||
size: {
|
||||
default: 'h-9 px-4 py-2 has-[>svg]:px-3',
|
||||
sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',
|
||||
lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',
|
||||
icon: 'size-9',
|
||||
},
|
||||
},
|
||||
defaultVariants: { variant: 'default', size: 'default' },
|
||||
}
|
||||
);
|
||||
function d(e) {
|
||||
let { className: r, variant: t, size: i, asChild: d = !1, ...c } = e,
|
||||
l = d ? a.DX : 'button';
|
||||
return (0, s.jsx)(l, {
|
||||
'data-slot': 'button',
|
||||
className: (0, n.cn)(o({ variant: t, size: i, className: r })),
|
||||
...c,
|
||||
});
|
||||
}
|
||||
},
|
||||
3929: (e, r, t) => {
|
||||
'use strict';
|
||||
t.d(r, { A: () => u });
|
||||
var s = t(4398);
|
||||
let a = (e) => e.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(),
|
||||
i = (e) =>
|
||||
e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, r, t) =>
|
||||
t ? t.toUpperCase() : r.toLowerCase()
|
||||
),
|
||||
n = (e) => {
|
||||
let r = i(e);
|
||||
return r.charAt(0).toUpperCase() + r.slice(1);
|
||||
},
|
||||
o = function () {
|
||||
for (var e = arguments.length, r = Array(e), t = 0; t < e; t++)
|
||||
r[t] = arguments[t];
|
||||
return r
|
||||
.filter((e, r, t) => !!e && '' !== e.trim() && t.indexOf(e) === r)
|
||||
.join(' ')
|
||||
.trim();
|
||||
},
|
||||
d = (e) => {
|
||||
for (let r in e)
|
||||
if (r.startsWith('aria-') || 'role' === r || 'title' === r)
|
||||
return !0;
|
||||
};
|
||||
var c = {
|
||||
xmlns: 'http://www.w3.org/2000/svg',
|
||||
width: 24,
|
||||
height: 24,
|
||||
viewBox: '0 0 24 24',
|
||||
fill: 'none',
|
||||
stroke: 'currentColor',
|
||||
strokeWidth: 2,
|
||||
strokeLinecap: 'round',
|
||||
strokeLinejoin: 'round',
|
||||
};
|
||||
let l = (0, s.forwardRef)((e, r) => {
|
||||
let {
|
||||
color: t = 'currentColor',
|
||||
size: a = 24,
|
||||
strokeWidth: i = 2,
|
||||
absoluteStrokeWidth: n,
|
||||
className: l = '',
|
||||
children: u,
|
||||
iconNode: h,
|
||||
...v
|
||||
} = e;
|
||||
return (0, s.createElement)(
|
||||
'svg',
|
||||
{
|
||||
ref: r,
|
||||
...c,
|
||||
width: a,
|
||||
height: a,
|
||||
stroke: t,
|
||||
strokeWidth: n ? (24 * Number(i)) / Number(a) : i,
|
||||
className: o('lucide', l),
|
||||
...(!u && !d(v) && { 'aria-hidden': 'true' }),
|
||||
...v,
|
||||
},
|
||||
[
|
||||
...h.map((e) => {
|
||||
let [r, t] = e;
|
||||
return (0, s.createElement)(r, t);
|
||||
}),
|
||||
...(Array.isArray(u) ? u : [u]),
|
||||
]
|
||||
);
|
||||
}),
|
||||
u = (e, r) => {
|
||||
let t = (0, s.forwardRef)((t, i) => {
|
||||
let { className: d, ...c } = t;
|
||||
return (0, s.createElement)(l, {
|
||||
ref: i,
|
||||
iconNode: r,
|
||||
className: o('lucide-'.concat(a(n(e))), 'lucide-'.concat(e), d),
|
||||
...c,
|
||||
});
|
||||
});
|
||||
return ((t.displayName = n(e)), t);
|
||||
};
|
||||
},
|
||||
6090: (e, r, t) => {
|
||||
Promise.resolve().then(t.bind(t, 2818));
|
||||
},
|
||||
9183: (e, r, t) => {
|
||||
'use strict';
|
||||
t.d(r, { cn: () => i });
|
||||
var s = t(8082),
|
||||
a = t(4966);
|
||||
function i() {
|
||||
for (var e = arguments.length, r = Array(e), t = 0; t < e; t++)
|
||||
r[t] = arguments[t];
|
||||
return (0, a.QP)((0, s.$)(r));
|
||||
}
|
||||
},
|
||||
},
|
||||
(e) => {
|
||||
var r = (r) => e((e.s = r));
|
||||
(e.O(0, [222, 945, 497, 358], () => r(6090)), (_N_E = e.O()));
|
||||
},
|
||||
]);
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1,20 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{4535:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,3971,23)),Promise.resolve().then(n.t.bind(n,5417,23)),Promise.resolve().then(n.t.bind(n,6613,23)),Promise.resolve().then(n.t.bind(n,8658,23)),Promise.resolve().then(n.t.bind(n,8754,23)),Promise.resolve().then(n.t.bind(n,394,23)),Promise.resolve().then(n.t.bind(n,4826,23)),Promise.resolve().then(n.t.bind(n,768,23))},5698:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[945,497],()=>(s(2230),s(4535))),_N_E=e.O()}]);
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[358],
|
||||
{
|
||||
4535: (e, s, n) => {
|
||||
(Promise.resolve().then(n.t.bind(n, 3971, 23)),
|
||||
Promise.resolve().then(n.t.bind(n, 5417, 23)),
|
||||
Promise.resolve().then(n.t.bind(n, 6613, 23)),
|
||||
Promise.resolve().then(n.t.bind(n, 8658, 23)),
|
||||
Promise.resolve().then(n.t.bind(n, 8754, 23)),
|
||||
Promise.resolve().then(n.t.bind(n, 394, 23)),
|
||||
Promise.resolve().then(n.t.bind(n, 4826, 23)),
|
||||
Promise.resolve().then(n.t.bind(n, 768, 23)));
|
||||
},
|
||||
5698: () => {},
|
||||
},
|
||||
(e) => {
|
||||
var s = (s) => e((e.s = s));
|
||||
(e.O(0, [945, 497], () => (s(2230), s(4535))), (_N_E = e.O()));
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -1 +1,17 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[636],{7231:(_,n,p)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return p(9326)}])}},_=>{var n=n=>_(_.s=n);_.O(0,[593,792],()=>(n(7231),n(1656))),_N_E=_.O()}]);
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[636],
|
||||
{
|
||||
7231: (_, n, p) => {
|
||||
(window.__NEXT_P = window.__NEXT_P || []).push([
|
||||
'/_app',
|
||||
function () {
|
||||
return p(9326);
|
||||
},
|
||||
]);
|
||||
},
|
||||
},
|
||||
(_) => {
|
||||
var n = (n) => _((_.s = n));
|
||||
(_.O(0, [593, 792], () => (n(7231), n(1656))), (_N_E = _.O()));
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -1 +1,17 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[731],{5977:(_,n,e)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return e(4347)}])}},_=>{var n=n=>_(_.s=n);_.O(0,[636,593,792],()=>n(5977)),_N_E=_.O()}]);
|
||||
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
|
||||
[731],
|
||||
{
|
||||
5977: (_, n, e) => {
|
||||
(window.__NEXT_P = window.__NEXT_P || []).push([
|
||||
'/_error',
|
||||
function () {
|
||||
return e(4347);
|
||||
},
|
||||
]);
|
||||
},
|
||||
},
|
||||
(_) => {
|
||||
var n = (n) => _((_.s = n));
|
||||
(_.O(0, [636, 593, 792], () => n(5977)), (_N_E = _.O()));
|
||||
},
|
||||
]);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1,209 @@
|
||||
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o](a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var u=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],l=!0,c=0;c<o.length;c++)(!1&a||u>=a)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,a<u&&(u=a));if(l){e.splice(i--,1);var d=n();void 0!==d&&(t=d)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>{},r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o])return void e[o].push(n);if(void 0!==a)for(var u,l,c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var f=c[d];if(f.getAttribute("src")==o||f.getAttribute("data-webpack")==t+a){u=f;break}}u||(l=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,r.nc&&u.setAttribute("nonce",r.nc),u.setAttribute("data-webpack",t+a),u.src=r.tu(o)),e[o]=[n];var s=(t,r)=>{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,699:0,273:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(273|68|699)$/.test(t))e[t]=0;else{var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),u=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",u.name="ChunkLoadError",u.type=a,u.request=i,n[1](u)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,u,l]=o,c=0;if(i.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var d=l(r)}for(t&&t(o);c<i.length;c++)a=i[c],r.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return r.O(d)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0})();
|
||||
(() => {
|
||||
'use strict';
|
||||
var e = {},
|
||||
t = {};
|
||||
function r(o) {
|
||||
var n = t[o];
|
||||
if (void 0 !== n) return n.exports;
|
||||
var a = (t[o] = { exports: {} }),
|
||||
i = !0;
|
||||
try {
|
||||
(e[o](a, a.exports, r), (i = !1));
|
||||
} finally {
|
||||
i && delete t[o];
|
||||
}
|
||||
return a.exports;
|
||||
}
|
||||
((r.m = e),
|
||||
(() => {
|
||||
var e = [];
|
||||
r.O = (t, o, n, a) => {
|
||||
if (o) {
|
||||
a = a || 0;
|
||||
for (var i = e.length; i > 0 && e[i - 1][2] > a; i--) e[i] = e[i - 1];
|
||||
e[i] = [o, n, a];
|
||||
return;
|
||||
}
|
||||
for (var u = 1 / 0, i = 0; i < e.length; i++) {
|
||||
for (var [o, n, a] = e[i], l = !0, c = 0; c < o.length; c++)
|
||||
(!1 & a || u >= a) && Object.keys(r.O).every((e) => r.O[e](o[c]))
|
||||
? o.splice(c--, 1)
|
||||
: ((l = !1), a < u && (u = a));
|
||||
if (l) {
|
||||
e.splice(i--, 1);
|
||||
var d = n();
|
||||
void 0 !== d && (t = d);
|
||||
}
|
||||
}
|
||||
return t;
|
||||
};
|
||||
})(),
|
||||
(r.n = (e) => {
|
||||
var t = e && e.__esModule ? () => e.default : () => e;
|
||||
return (r.d(t, { a: t }), t);
|
||||
}),
|
||||
(() => {
|
||||
var e,
|
||||
t = Object.getPrototypeOf
|
||||
? (e) => Object.getPrototypeOf(e)
|
||||
: (e) => e.__proto__;
|
||||
r.t = function (o, n) {
|
||||
if (
|
||||
(1 & n && (o = this(o)),
|
||||
8 & n ||
|
||||
('object' == typeof o &&
|
||||
o &&
|
||||
((4 & n && o.__esModule) ||
|
||||
(16 & n && 'function' == typeof o.then))))
|
||||
)
|
||||
return o;
|
||||
var a = Object.create(null);
|
||||
r.r(a);
|
||||
var i = {};
|
||||
e = e || [null, t({}), t([]), t(t)];
|
||||
for (
|
||||
var u = 2 & n && o;
|
||||
'object' == typeof u && !~e.indexOf(u);
|
||||
u = t(u)
|
||||
)
|
||||
Object.getOwnPropertyNames(u).forEach((e) => (i[e] = () => o[e]));
|
||||
return ((i.default = () => o), r.d(a, i), a);
|
||||
};
|
||||
})(),
|
||||
(r.d = (e, t) => {
|
||||
for (var o in t)
|
||||
r.o(t, o) &&
|
||||
!r.o(e, o) &&
|
||||
Object.defineProperty(e, o, { enumerable: !0, get: t[o] });
|
||||
}),
|
||||
(r.f = {}),
|
||||
(r.e = (e) =>
|
||||
Promise.all(Object.keys(r.f).reduce((t, o) => (r.f[o](e, t), t), []))),
|
||||
(r.u = (e) => {}),
|
||||
(r.miniCssF = (e) => {}),
|
||||
(r.g = (function () {
|
||||
if ('object' == typeof globalThis) return globalThis;
|
||||
try {
|
||||
return this || Function('return this')();
|
||||
} catch (e) {
|
||||
if ('object' == typeof window) return window;
|
||||
}
|
||||
})()),
|
||||
(r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)),
|
||||
(() => {
|
||||
var e = {},
|
||||
t = '_N_E:';
|
||||
r.l = (o, n, a, i) => {
|
||||
if (e[o]) return void e[o].push(n);
|
||||
if (void 0 !== a)
|
||||
for (
|
||||
var u, l, c = document.getElementsByTagName('script'), d = 0;
|
||||
d < c.length;
|
||||
d++
|
||||
) {
|
||||
var f = c[d];
|
||||
if (
|
||||
f.getAttribute('src') == o ||
|
||||
f.getAttribute('data-webpack') == t + a
|
||||
) {
|
||||
u = f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
(u ||
|
||||
((l = !0),
|
||||
((u = document.createElement('script')).charset = 'utf-8'),
|
||||
(u.timeout = 120),
|
||||
r.nc && u.setAttribute('nonce', r.nc),
|
||||
u.setAttribute('data-webpack', t + a),
|
||||
(u.src = r.tu(o))),
|
||||
(e[o] = [n]));
|
||||
var s = (t, r) => {
|
||||
((u.onerror = u.onload = null), clearTimeout(p));
|
||||
var n = e[o];
|
||||
if (
|
||||
(delete e[o],
|
||||
u.parentNode && u.parentNode.removeChild(u),
|
||||
n && n.forEach((e) => e(r)),
|
||||
t)
|
||||
)
|
||||
return t(r);
|
||||
},
|
||||
p = setTimeout(
|
||||
s.bind(null, void 0, { type: 'timeout', target: u }),
|
||||
12e4
|
||||
);
|
||||
((u.onerror = s.bind(null, u.onerror)),
|
||||
(u.onload = s.bind(null, u.onload)),
|
||||
l && document.head.appendChild(u));
|
||||
};
|
||||
})(),
|
||||
(r.r = (e) => {
|
||||
('undefined' != typeof Symbol &&
|
||||
Symbol.toStringTag &&
|
||||
Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }),
|
||||
Object.defineProperty(e, '__esModule', { value: !0 }));
|
||||
}),
|
||||
(() => {
|
||||
var e;
|
||||
r.tt = () => (
|
||||
void 0 === e &&
|
||||
((e = { createScriptURL: (e) => e }),
|
||||
'undefined' != typeof trustedTypes &&
|
||||
trustedTypes.createPolicy &&
|
||||
(e = trustedTypes.createPolicy('nextjs#bundler', e))),
|
||||
e
|
||||
);
|
||||
})(),
|
||||
(r.tu = (e) => r.tt().createScriptURL(e)),
|
||||
(r.p = '/_next/'),
|
||||
(() => {
|
||||
var e = { 68: 0, 699: 0, 273: 0 };
|
||||
((r.f.j = (t, o) => {
|
||||
var n = r.o(e, t) ? e[t] : void 0;
|
||||
if (0 !== n)
|
||||
if (n) o.push(n[2]);
|
||||
else if (/^(273|68|699)$/.test(t)) e[t] = 0;
|
||||
else {
|
||||
var a = new Promise((r, o) => (n = e[t] = [r, o]));
|
||||
o.push((n[2] = a));
|
||||
var i = r.p + r.u(t),
|
||||
u = Error();
|
||||
r.l(
|
||||
i,
|
||||
(o) => {
|
||||
if (r.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) {
|
||||
var a = o && ('load' === o.type ? 'missing' : o.type),
|
||||
i = o && o.target && o.target.src;
|
||||
((u.message =
|
||||
'Loading chunk ' + t + ' failed.\n(' + a + ': ' + i + ')'),
|
||||
(u.name = 'ChunkLoadError'),
|
||||
(u.type = a),
|
||||
(u.request = i),
|
||||
n[1](u));
|
||||
}
|
||||
},
|
||||
'chunk-' + t,
|
||||
t
|
||||
);
|
||||
}
|
||||
}),
|
||||
(r.O.j = (t) => 0 === e[t]));
|
||||
var t = (t, o) => {
|
||||
var n,
|
||||
a,
|
||||
[i, u, l] = o,
|
||||
c = 0;
|
||||
if (i.some((t) => 0 !== e[t])) {
|
||||
for (n in u) r.o(u, n) && (r.m[n] = u[n]);
|
||||
if (l) var d = l(r);
|
||||
}
|
||||
for (t && t(o); c < i.length; c++)
|
||||
((a = i[c]), r.o(e, a) && e[a] && e[a][0](), (e[a] = 0));
|
||||
return r.O(d);
|
||||
},
|
||||
o = (self.webpackChunk_N_E = self.webpackChunk_N_E || []);
|
||||
(o.forEach(t.bind(null, 0)), (o.push = t.bind(null, o.push.bind(o))));
|
||||
})(),
|
||||
(r.nc = void 0));
|
||||
})();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1 +1,94 @@
|
||||
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_188709{font-family:Geist,Geist Fallback;font-style:normal}.__variable_188709{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
|
||||
@font-face {
|
||||
font-family: Geist;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url(/_next/static/media/8d697b304b401681-s.woff2) format('woff2');
|
||||
unicode-range: u+0301, u+0400-045f, u+0490-0491, u+04b0-04b1, u+2116;
|
||||
}
|
||||
@font-face {
|
||||
font-family: Geist;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url(/_next/static/media/ba015fad6dcf6784-s.woff2) format('woff2');
|
||||
unicode-range:
|
||||
u+0100-02ba, u+02bd-02c5, u+02c7-02cc, u+02ce-02d7, u+02dd-02ff, u+0304,
|
||||
u+0308, u+0329, u+1d00-1dbf, u+1e00-1e9f, u+1ef2-1eff, u+2020, u+20a0-20ab,
|
||||
u+20ad-20c0, u+2113, u+2c60-2c7f, u+a720-a7ff;
|
||||
}
|
||||
@font-face {
|
||||
font-family: Geist;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format('woff2');
|
||||
unicode-range:
|
||||
u+00??, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+0304,
|
||||
u+0308, u+0329, u+2000-206f, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215,
|
||||
u+feff, u+fffd;
|
||||
}
|
||||
@font-face {
|
||||
font-family: Geist Fallback;
|
||||
src: local('Arial');
|
||||
ascent-override: 95.94%;
|
||||
descent-override: 28.16%;
|
||||
line-gap-override: 0%;
|
||||
size-adjust: 104.76%;
|
||||
}
|
||||
.__className_188709 {
|
||||
font-family:
|
||||
Geist,
|
||||
Geist Fallback;
|
||||
font-style: normal;
|
||||
}
|
||||
.__variable_188709 {
|
||||
--font-geist-sans: 'Geist', 'Geist Fallback';
|
||||
}
|
||||
@font-face {
|
||||
font-family: Geist Mono;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url(/_next/static/media/9610d9e46709d722-s.woff2) format('woff2');
|
||||
unicode-range: u+0301, u+0400-045f, u+0490-0491, u+04b0-04b1, u+2116;
|
||||
}
|
||||
@font-face {
|
||||
font-family: Geist Mono;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url(/_next/static/media/747892c23ea88013-s.woff2) format('woff2');
|
||||
unicode-range:
|
||||
u+0100-02ba, u+02bd-02c5, u+02c7-02cc, u+02ce-02d7, u+02dd-02ff, u+0304,
|
||||
u+0308, u+0329, u+1d00-1dbf, u+1e00-1e9f, u+1ef2-1eff, u+2020, u+20a0-20ab,
|
||||
u+20ad-20c0, u+2113, u+2c60-2c7f, u+a720-a7ff;
|
||||
}
|
||||
@font-face {
|
||||
font-family: Geist Mono;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url(/_next/static/media/93f479601ee12b01-s.p.woff2) format('woff2');
|
||||
unicode-range:
|
||||
u+00??, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+0304,
|
||||
u+0308, u+0329, u+2000-206f, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215,
|
||||
u+feff, u+fffd;
|
||||
}
|
||||
@font-face {
|
||||
font-family: Geist Mono Fallback;
|
||||
src: local('Arial');
|
||||
ascent-override: 74.67%;
|
||||
descent-override: 21.92%;
|
||||
line-gap-override: 0%;
|
||||
size-adjust: 134.59%;
|
||||
}
|
||||
.__className_9a8899 {
|
||||
font-family:
|
||||
Geist Mono,
|
||||
Geist Mono Fallback;
|
||||
font-style: normal;
|
||||
}
|
||||
.__variable_9a8899 {
|
||||
--font-geist-mono: 'Geist Mono', 'Geist Mono Fallback';
|
||||
}
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
((self.__BUILD_MANIFEST = (function (e, r, t) {
|
||||
return {
|
||||
__rewrites: { afterFiles: [], beforeFiles: [], fallback: [] },
|
||||
__routerFilterStatic: {
|
||||
numItems: 9,
|
||||
errorRate: 1e-4,
|
||||
numBits: 173,
|
||||
numHashes: 14,
|
||||
bitArray: [
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
e,
|
||||
e,
|
||||
0,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
e,
|
||||
r,
|
||||
r,
|
||||
],
|
||||
},
|
||||
__routerFilterDynamic: {
|
||||
numItems: r,
|
||||
errorRate: 1e-4,
|
||||
numBits: r,
|
||||
numHashes: null,
|
||||
bitArray: [],
|
||||
},
|
||||
'/_error': ['static/chunks/pages/_error-37aa057e76496f5c.js'],
|
||||
sortedPages: ['/_app', '/_error'],
|
||||
};
|
||||
})(1, 0, 1e-4)),
|
||||
self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB());
|
||||
@@ -0,0 +1,2 @@
|
||||
self.__SSG_MANIFEST = new Set([]);
|
||||
self.__SSG_MANIFEST_CB && self.__SSG_MANIFEST_CB();
|
||||
@@ -1 +0,0 @@
|
||||
self.__BUILD_MANIFEST=function(e,r,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:9,errorRate:1e-4,numBits:173,numHashes:14,bitArray:[1,1,0,e,e,0,e,r,e,e,e,e,e,r,r,e,e,e,e,r,e,e,e,e,e,r,e,e,r,e,r,r,r,r,r,r,e,e,r,e,r,e,e,e,r,r,r,e,r,r,r,r,r,r,r,r,r,r,e,r,r,e,e,r,r,e,r,e,e,e,e,e,e,e,r,r,r,r,e,e,r,r,r,r,e,e,e,e,r,e,e,r,r,e,r,r,r,e,e,r,e,e,r,r,e,r,r,e,r,e,e,e,e,e,r,r,e,r,r,r,r,r,e,r,r,e,e,r,e,r,e,r,e,e,r,r,r,e,e,r,r,e,e,r,r,r,r,r,r,e,e,e,e,e,r,e,e,r,e,r,e,e,e,e,e,r,r,e,e,e,e,r,r]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-37aa057e76496f5c.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
||||
@@ -1 +0,0 @@
|
||||
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 15 KiB |
+567
-1
File diff suppressed because one or more lines are too long
+8
-8
@@ -1,12 +1,12 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-78656fe26f6abcbd.js"],"Providers"]
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]
|
||||
3:I[8754,[],""]
|
||||
4:I[768,[],""]
|
||||
5:I[953,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-730b77a9307a096f.js","974","static/chunks/app/page-87d16e3efd5206c4.js"],"SidebarProvider"]
|
||||
6:I[7569,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-730b77a9307a096f.js","974","static/chunks/app/page-87d16e3efd5206c4.js"],"AppSidebar"]
|
||||
7:I[953,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-730b77a9307a096f.js","974","static/chunks/app/page-87d16e3efd5206c4.js"],"SidebarInset"]
|
||||
8:I[4756,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-730b77a9307a096f.js","974","static/chunks/app/page-87d16e3efd5206c4.js"],"SiteHeader"]
|
||||
9:I[159,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-730b77a9307a096f.js","974","static/chunks/app/page-87d16e3efd5206c4.js"],"DetailedWalletBalance"]
|
||||
5:I[953,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-7aedbfc1345ecc2c.js","974","static/chunks/app/page-76f981cd7e1df93a.js"],"SidebarProvider"]
|
||||
6:I[7569,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-7aedbfc1345ecc2c.js","974","static/chunks/app/page-76f981cd7e1df93a.js"],"AppSidebar"]
|
||||
7:I[953,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-7aedbfc1345ecc2c.js","974","static/chunks/app/page-76f981cd7e1df93a.js"],"SidebarInset"]
|
||||
8:I[4756,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-7aedbfc1345ecc2c.js","974","static/chunks/app/page-76f981cd7e1df93a.js"],"SiteHeader"]
|
||||
9:I[159,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","236","static/chunks/236-7aedbfc1345ecc2c.js","974","static/chunks/app/page-76f981cd7e1df93a.js"],"DetailedWalletBalance"]
|
||||
a:I[4826,[],"MetadataBoundary"]
|
||||
c:I[4826,[],"OutletBoundary"]
|
||||
f:I[394,[],"AsyncMetadataOutlet"]
|
||||
@@ -15,8 +15,8 @@ f:I[394,[],"AsyncMetadataOutlet"]
|
||||
:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/css/de70bee13400563f.css","style"]
|
||||
:HL["/_next/static/css/5bf7a4b46c37a9cb.css","style"]
|
||||
0:{"P":null,"b":"vLNT9fYvEEiEsCv9-EMeU","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5bf7a4b46c37a9cb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"children":[["$","$L6",null,{"variant":"inset"}],["$","$L7",null,{"className":"p-0","children":[["$","$L8",null,{}],["$","div",null,{"className":"container max-w-6xl px-4 py-8 md:px-6 lg:px-8","children":[["$","div",null,{"className":"mb-8","children":[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"Admin Dashboard"}],["$","p",null,{"className":"text-muted-foreground mt-2","children":"Monitor and manage wallet balances"}]]}],["$","div",null,{"className":"grid gap-6","children":["$","div",null,{"className":"col-span-full","children":["$","$L9",null,{"refreshInterval":5000}]}]}]]}]]}]]}],["$","$La",null,{"children":"$Lb"}],null,["$","$Lc",null,{"children":["$Ld","$Le",["$","$Lf",null,{"promise":"$@10"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","-0JEnzk1pkF4VqsiRVLlf",{"children":[["$","$L11",null,{"children":"$L12"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$13","$undefined"],"s":false,"S":true}
|
||||
:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]
|
||||
0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"children":[["$","$L6",null,{"variant":"inset"}],["$","$L7",null,{"className":"p-0","children":[["$","$L8",null,{}],["$","div",null,{"className":"container max-w-6xl px-4 py-8 md:px-6 lg:px-8","children":[["$","div",null,{"className":"mb-8","children":[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"Admin Dashboard"}],["$","p",null,{"className":"text-muted-foreground mt-2","children":"Monitor and manage wallet balances"}]]}],["$","div",null,{"className":"grid gap-6","children":["$","div",null,{"className":"col-span-full","children":["$","$L9",null,{"refreshInterval":5000}]}]}]]}]]}]]}],["$","$La",null,{"children":"$Lb"}],null,["$","$Lc",null,{"children":["$Ld","$Le",["$","$Lf",null,{"promise":"$@10"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","5YdAgOM5wqtj-PCIhHKXQ",{"children":[["$","$L11",null,{"children":"$L12"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$13","$undefined"],"s":false,"S":true}
|
||||
14:"$Sreact.suspense"
|
||||
15:I[394,[],"AsyncMetadata"]
|
||||
b:["$","$14",null,{"fallback":null,"children":["$","$L15",null,{"promise":"$@16"}]}]
|
||||
|
||||
+178
-1
File diff suppressed because one or more lines are too long
@@ -1,9 +1,9 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-78656fe26f6abcbd.js"],"Providers"]
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]
|
||||
3:I[8754,[],""]
|
||||
4:I[768,[],""]
|
||||
5:I[3971,[],"ClientPageRoot"]
|
||||
6:I[9079,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","520","static/chunks/app/login/page-719739594f6db077.js"],"default"]
|
||||
6:I[9079,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","520","static/chunks/app/login/page-9d2abe7b74a0707f.js"],"default"]
|
||||
9:I[4826,[],"MetadataBoundary"]
|
||||
b:I[4826,[],"OutletBoundary"]
|
||||
e:I[394,[],"AsyncMetadataOutlet"]
|
||||
@@ -12,8 +12,8 @@ e:I[394,[],"AsyncMetadataOutlet"]
|
||||
:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/css/de70bee13400563f.css","style"]
|
||||
:HL["/_next/static/css/5bf7a4b46c37a9cb.css","style"]
|
||||
0:{"P":null,"b":"vLNT9fYvEEiEsCv9-EMeU","p":"","c":["","login",""],"i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5bf7a4b46c37a9cb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["login",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","fbRX23GK69llPyEWo9KuZ",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]
|
||||
0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["","login",""],"i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["login",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","AMsMTdGLZH6ugkGa_wbET",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
13:"$Sreact.suspense"
|
||||
14:I[394,[],"AsyncMetadata"]
|
||||
7:{}
|
||||
|
||||
+557
-1
File diff suppressed because one or more lines are too long
@@ -1,9 +1,9 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-78656fe26f6abcbd.js"],"Providers"]
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]
|
||||
3:I[8754,[],""]
|
||||
4:I[768,[],""]
|
||||
5:I[3971,[],"ClientPageRoot"]
|
||||
6:I[3119,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","982","static/chunks/982-5588ad0e30e6255e.js","552","static/chunks/552-841e72e83992f2f1.js","236","static/chunks/236-730b77a9307a096f.js","255","static/chunks/255-31fc2ac8f83496f8.js","329","static/chunks/app/models/page-c6cd6da993af56e9.js"],"default"]
|
||||
6:I[3119,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","982","static/chunks/982-5588ad0e30e6255e.js","552","static/chunks/552-841e72e83992f2f1.js","236","static/chunks/236-7aedbfc1345ecc2c.js","255","static/chunks/255-a44a63a7b4273784.js","329","static/chunks/app/models/page-fc2b83cb8d074990.js"],"default"]
|
||||
9:I[4826,[],"MetadataBoundary"]
|
||||
b:I[4826,[],"OutletBoundary"]
|
||||
e:I[394,[],"AsyncMetadataOutlet"]
|
||||
@@ -12,8 +12,8 @@ e:I[394,[],"AsyncMetadataOutlet"]
|
||||
:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/css/de70bee13400563f.css","style"]
|
||||
:HL["/_next/static/css/5bf7a4b46c37a9cb.css","style"]
|
||||
0:{"P":null,"b":"vLNT9fYvEEiEsCv9-EMeU","p":"","c":["","models",""],"i":false,"f":[[["",{"children":["models",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5bf7a4b46c37a9cb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["models",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","SHi_eyqjN7FY50lPROTcD",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]
|
||||
0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["","models",""],"i":false,"f":[[["",{"children":["models",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["models",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","JETg4H9fotw80fo_O_bWr",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
13:"$Sreact.suspense"
|
||||
14:I[394,[],"AsyncMetadata"]
|
||||
7:{}
|
||||
|
||||
+514
-1
File diff suppressed because one or more lines are too long
@@ -1,9 +1,9 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-78656fe26f6abcbd.js"],"Providers"]
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]
|
||||
3:I[8754,[],""]
|
||||
4:I[768,[],""]
|
||||
5:I[3971,[],"ClientPageRoot"]
|
||||
6:I[8288,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","982","static/chunks/982-5588ad0e30e6255e.js","236","static/chunks/236-730b77a9307a096f.js","255","static/chunks/255-31fc2ac8f83496f8.js","387","static/chunks/app/providers/page-ac672d4dcee2ea73.js"],"default"]
|
||||
6:I[8288,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","982","static/chunks/982-5588ad0e30e6255e.js","236","static/chunks/236-7aedbfc1345ecc2c.js","255","static/chunks/255-a44a63a7b4273784.js","387","static/chunks/app/providers/page-ac672d4dcee2ea73.js"],"default"]
|
||||
9:I[4826,[],"MetadataBoundary"]
|
||||
b:I[4826,[],"OutletBoundary"]
|
||||
e:I[394,[],"AsyncMetadataOutlet"]
|
||||
@@ -12,8 +12,8 @@ e:I[394,[],"AsyncMetadataOutlet"]
|
||||
:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/css/de70bee13400563f.css","style"]
|
||||
:HL["/_next/static/css/5bf7a4b46c37a9cb.css","style"]
|
||||
0:{"P":null,"b":"vLNT9fYvEEiEsCv9-EMeU","p":"","c":["","providers",""],"i":false,"f":[[["",{"children":["providers",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5bf7a4b46c37a9cb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["providers",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","z3DbGdBzz2lJfGmQerCkx",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]
|
||||
0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["","providers",""],"i":false,"f":[[["",{"children":["providers",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["providers",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","b3Di70ocW9CecHs34xZGZ",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
13:"$Sreact.suspense"
|
||||
14:I[394,[],"AsyncMetadata"]
|
||||
7:{}
|
||||
|
||||
+528
-1
File diff suppressed because one or more lines are too long
@@ -1,9 +1,9 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-78656fe26f6abcbd.js"],"Providers"]
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]
|
||||
3:I[8754,[],""]
|
||||
4:I[768,[],""]
|
||||
5:I[3971,[],"ClientPageRoot"]
|
||||
6:I[4961,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","978","static/chunks/978-cd938190a9f5efa7.js","651","static/chunks/651-4a58f299a4aa4df7.js","236","static/chunks/236-730b77a9307a096f.js","255","static/chunks/255-31fc2ac8f83496f8.js","662","static/chunks/app/settings/page-8ff07db87a828cc8.js"],"default"]
|
||||
6:I[4961,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","978","static/chunks/978-cd938190a9f5efa7.js","651","static/chunks/651-4a58f299a4aa4df7.js","236","static/chunks/236-7aedbfc1345ecc2c.js","255","static/chunks/255-a44a63a7b4273784.js","662","static/chunks/app/settings/page-7a8d2e07b1fd6500.js"],"default"]
|
||||
9:I[4826,[],"MetadataBoundary"]
|
||||
b:I[4826,[],"OutletBoundary"]
|
||||
e:I[394,[],"AsyncMetadataOutlet"]
|
||||
@@ -12,8 +12,8 @@ e:I[394,[],"AsyncMetadataOutlet"]
|
||||
:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/css/de70bee13400563f.css","style"]
|
||||
:HL["/_next/static/css/5bf7a4b46c37a9cb.css","style"]
|
||||
0:{"P":null,"b":"vLNT9fYvEEiEsCv9-EMeU","p":"","c":["","settings",""],"i":false,"f":[[["",{"children":["settings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5bf7a4b46c37a9cb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","2kf1HxgLxA_Y9l_ekUelr",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]
|
||||
0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["","settings",""],"i":false,"f":[[["",{"children":["settings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","0KeZV22aNY_07gBhOJEWA",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
13:"$Sreact.suspense"
|
||||
14:I[394,[],"AsyncMetadata"]
|
||||
7:{}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,9 +1,9 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-78656fe26f6abcbd.js"],"Providers"]
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]
|
||||
3:I[8754,[],""]
|
||||
4:I[768,[],""]
|
||||
5:I[3971,[],"ClientPageRoot"]
|
||||
6:I[7082,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","236","static/chunks/236-730b77a9307a096f.js","790","static/chunks/app/transactions/page-3ed7b733de8974b7.js"],"default"]
|
||||
6:I[7082,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","236","static/chunks/236-7aedbfc1345ecc2c.js","790","static/chunks/app/transactions/page-f13c39dc3321eaf7.js"],"default"]
|
||||
9:I[4826,[],"MetadataBoundary"]
|
||||
b:I[4826,[],"OutletBoundary"]
|
||||
e:I[394,[],"AsyncMetadataOutlet"]
|
||||
@@ -12,8 +12,8 @@ e:I[394,[],"AsyncMetadataOutlet"]
|
||||
:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/css/de70bee13400563f.css","style"]
|
||||
:HL["/_next/static/css/5bf7a4b46c37a9cb.css","style"]
|
||||
0:{"P":null,"b":"vLNT9fYvEEiEsCv9-EMeU","p":"","c":["","transactions",""],"i":false,"f":[[["",{"children":["transactions",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5bf7a4b46c37a9cb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["transactions",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","vM7PWoqHZ99Q94nCTb6K6",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]
|
||||
0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["","transactions",""],"i":false,"f":[[["",{"children":["transactions",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["transactions",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","1mW7b1o5bdXLUGaDA3fLv",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
13:"$Sreact.suspense"
|
||||
14:I[394,[],"AsyncMetadata"]
|
||||
7:{}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
1:"$Sreact.fragment"
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-78656fe26f6abcbd.js"],"Providers"]
|
||||
2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]
|
||||
3:I[8754,[],""]
|
||||
4:I[768,[],""]
|
||||
5:I[3971,[],"ClientPageRoot"]
|
||||
@@ -12,8 +12,8 @@ e:I[394,[],"AsyncMetadataOutlet"]
|
||||
:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
:HL["/_next/static/css/de70bee13400563f.css","style"]
|
||||
:HL["/_next/static/css/5bf7a4b46c37a9cb.css","style"]
|
||||
0:{"P":null,"b":"vLNT9fYvEEiEsCv9-EMeU","p":"","c":["","unauthorized",""],"i":false,"f":[[["",{"children":["unauthorized",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5bf7a4b46c37a9cb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["unauthorized",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","5NO6X0u7jRH09eOaxVVF_",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]
|
||||
0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["","unauthorized",""],"i":false,"f":[[["",{"children":["unauthorized",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["unauthorized",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","R7bafbhn0FAEo0hfjrwR9",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
||||
13:"$Sreact.suspense"
|
||||
14:I[394,[],"AsyncMetadata"]
|
||||
7:{}
|
||||
|
||||
Reference in New Issue
Block a user