This commit is contained in:
9qeklajc
2025-10-24 15:22:58 +02:00
parent e146b4a08a
commit 5279eadec3
63 changed files with 96134 additions and 75 deletions
+189 -1
View File
File diff suppressed because one or more lines are too long
+189 -1
View File
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
+94 -1
View File
@@ -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
View File
File diff suppressed because one or more lines are too long
+8 -8
View File
@@ -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
View File
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -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:{}
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -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:{}
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -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:{}
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -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
+4 -4
View File
@@ -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
+3 -3
View File
@@ -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:{}