medusa-stats 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/index.js +107 -107
- package/.medusa/server/src/admin/index.mjs +107 -107
- package/.medusa/server/src/loaders/statistics/index.js +1 -1
- package/LICENSE +7 -0
- package/README.md +317 -310
- package/package.json +92 -88
|
@@ -15,7 +15,7 @@ const Medusa__default = /* @__PURE__ */ _interopDefault(Medusa);
|
|
|
15
15
|
const React__default = /* @__PURE__ */ _interopDefault(React);
|
|
16
16
|
const STATISTICS_QUERY = "statistics";
|
|
17
17
|
const sdk = new Medusa__default.default({
|
|
18
|
-
baseUrl:
|
|
18
|
+
baseUrl: __BACKEND_URL__,
|
|
19
19
|
debug: false,
|
|
20
20
|
auth: {
|
|
21
21
|
type: "session"
|
|
@@ -7209,103 +7209,6 @@ const AlertsPage = () => {
|
|
|
7209
7209
|
const config$4 = adminSdk.defineRouteConfig({
|
|
7210
7210
|
label: "Alerts"
|
|
7211
7211
|
});
|
|
7212
|
-
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
7213
|
-
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
7214
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7215
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7216
|
-
ui.Table.Row,
|
|
7217
|
-
{
|
|
7218
|
-
className: "cursor-pointer",
|
|
7219
|
-
onClick: onToggle,
|
|
7220
|
-
children: [
|
|
7221
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
7222
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsxRuntime.jsx(icons.Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
7223
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
7224
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
7225
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
7226
|
-
] })
|
|
7227
|
-
] }) }),
|
|
7228
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
7229
|
-
statistics.length || 0,
|
|
7230
|
-
" available"
|
|
7231
|
-
] }) }),
|
|
7232
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
7233
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
7234
|
-
]
|
|
7235
|
-
}
|
|
7236
|
-
),
|
|
7237
|
-
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 py-4", children: [
|
|
7238
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
7239
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7240
|
-
"div",
|
|
7241
|
-
{
|
|
7242
|
-
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
7243
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
7244
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
7245
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
7246
|
-
stat.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
7247
|
-
] }) })
|
|
7248
|
-
},
|
|
7249
|
-
stat.id
|
|
7250
|
-
)) })
|
|
7251
|
-
] }) }) })
|
|
7252
|
-
] });
|
|
7253
|
-
};
|
|
7254
|
-
const LoadingRow = () => /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
7255
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
7256
|
-
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
7257
|
-
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
7258
|
-
] }) }),
|
|
7259
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
7260
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
7261
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
7262
|
-
] });
|
|
7263
|
-
const ProvidersPage = () => {
|
|
7264
|
-
const [expandedRows, setExpandedRows] = React.useState(/* @__PURE__ */ new Set());
|
|
7265
|
-
const { data, isLoading } = reactQuery.useQuery({
|
|
7266
|
-
queryFn: () => listProviders(),
|
|
7267
|
-
queryKey: [STATISTICS_QUERY, "providers"]
|
|
7268
|
-
});
|
|
7269
|
-
const providers = (data == null ? void 0 : data.providers) || [];
|
|
7270
|
-
const toggleRow = (providerId) => {
|
|
7271
|
-
setExpandedRows((prev) => {
|
|
7272
|
-
const newSet = new Set(prev);
|
|
7273
|
-
if (newSet.has(providerId)) {
|
|
7274
|
-
newSet.delete(providerId);
|
|
7275
|
-
} else {
|
|
7276
|
-
newSet.add(providerId);
|
|
7277
|
-
}
|
|
7278
|
-
return newSet;
|
|
7279
|
-
});
|
|
7280
|
-
};
|
|
7281
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
7282
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Heading, { level: "h2", children: "Providers" }) }),
|
|
7283
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table, { children: [
|
|
7284
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
7285
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Provider" }),
|
|
7286
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Statistics" }),
|
|
7287
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Status" }),
|
|
7288
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, {})
|
|
7289
|
-
] }) }),
|
|
7290
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7291
|
-
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
7292
|
-
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
7293
|
-
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {})
|
|
7294
|
-
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7295
|
-
ProviderRow,
|
|
7296
|
-
{
|
|
7297
|
-
provider,
|
|
7298
|
-
isExpanded: expandedRows.has(provider.id),
|
|
7299
|
-
onToggle: () => toggleRow(provider.id)
|
|
7300
|
-
},
|
|
7301
|
-
provider.id
|
|
7302
|
-
)) : /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
7303
|
-
] }) })
|
|
7304
|
-
] });
|
|
7305
|
-
};
|
|
7306
|
-
const config$3 = adminSdk.defineRouteConfig({
|
|
7307
|
-
label: "Providers"
|
|
7308
|
-
});
|
|
7309
7212
|
const OptionSelector = ({
|
|
7310
7213
|
onSelect,
|
|
7311
7214
|
title,
|
|
@@ -8216,7 +8119,7 @@ const OptionEditDrawer = ({
|
|
|
8216
8119
|
] })
|
|
8217
8120
|
] }) });
|
|
8218
8121
|
};
|
|
8219
|
-
const config$
|
|
8122
|
+
const config$3 = adminSdk.defineRouteConfig({
|
|
8220
8123
|
label: "Option Presets",
|
|
8221
8124
|
icon: icons.ArrowDownTray
|
|
8222
8125
|
});
|
|
@@ -8545,6 +8448,103 @@ const PresetsPage = () => {
|
|
|
8545
8448
|
)
|
|
8546
8449
|
] });
|
|
8547
8450
|
};
|
|
8451
|
+
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
8452
|
+
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
8453
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
8454
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
8455
|
+
ui.Table.Row,
|
|
8456
|
+
{
|
|
8457
|
+
className: "cursor-pointer",
|
|
8458
|
+
onClick: onToggle,
|
|
8459
|
+
children: [
|
|
8460
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
8461
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsxRuntime.jsx(icons.Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
8462
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
8463
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
8464
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
8465
|
+
] })
|
|
8466
|
+
] }) }),
|
|
8467
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
8468
|
+
statistics.length || 0,
|
|
8469
|
+
" available"
|
|
8470
|
+
] }) }),
|
|
8471
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
8472
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
8473
|
+
]
|
|
8474
|
+
}
|
|
8475
|
+
),
|
|
8476
|
+
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 py-4", children: [
|
|
8477
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
8478
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8479
|
+
"div",
|
|
8480
|
+
{
|
|
8481
|
+
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
8482
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
8483
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
8484
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
8485
|
+
stat.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
8486
|
+
] }) })
|
|
8487
|
+
},
|
|
8488
|
+
stat.id
|
|
8489
|
+
)) })
|
|
8490
|
+
] }) }) })
|
|
8491
|
+
] });
|
|
8492
|
+
};
|
|
8493
|
+
const LoadingRow = () => /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
8494
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
8495
|
+
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
8496
|
+
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
8497
|
+
] }) }),
|
|
8498
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
8499
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
8500
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
8501
|
+
] });
|
|
8502
|
+
const ProvidersPage = () => {
|
|
8503
|
+
const [expandedRows, setExpandedRows] = React.useState(/* @__PURE__ */ new Set());
|
|
8504
|
+
const { data, isLoading } = reactQuery.useQuery({
|
|
8505
|
+
queryFn: () => listProviders(),
|
|
8506
|
+
queryKey: [STATISTICS_QUERY, "providers"]
|
|
8507
|
+
});
|
|
8508
|
+
const providers = (data == null ? void 0 : data.providers) || [];
|
|
8509
|
+
const toggleRow = (providerId) => {
|
|
8510
|
+
setExpandedRows((prev) => {
|
|
8511
|
+
const newSet = new Set(prev);
|
|
8512
|
+
if (newSet.has(providerId)) {
|
|
8513
|
+
newSet.delete(providerId);
|
|
8514
|
+
} else {
|
|
8515
|
+
newSet.add(providerId);
|
|
8516
|
+
}
|
|
8517
|
+
return newSet;
|
|
8518
|
+
});
|
|
8519
|
+
};
|
|
8520
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
8521
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Heading, { level: "h2", children: "Providers" }) }),
|
|
8522
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table, { children: [
|
|
8523
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
8524
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Provider" }),
|
|
8525
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Statistics" }),
|
|
8526
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Status" }),
|
|
8527
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, {})
|
|
8528
|
+
] }) }),
|
|
8529
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
8530
|
+
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
8531
|
+
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
8532
|
+
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {})
|
|
8533
|
+
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8534
|
+
ProviderRow,
|
|
8535
|
+
{
|
|
8536
|
+
provider,
|
|
8537
|
+
isExpanded: expandedRows.has(provider.id),
|
|
8538
|
+
onToggle: () => toggleRow(provider.id)
|
|
8539
|
+
},
|
|
8540
|
+
provider.id
|
|
8541
|
+
)) : /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
8542
|
+
] }) })
|
|
8543
|
+
] });
|
|
8544
|
+
};
|
|
8545
|
+
const config$2 = adminSdk.defineRouteConfig({
|
|
8546
|
+
label: "Providers"
|
|
8547
|
+
});
|
|
8548
8548
|
const columnHelper = ui.createDataTableColumnHelper();
|
|
8549
8549
|
const getColumns = () => [
|
|
8550
8550
|
columnHelper.accessor("alert.name", {
|
|
@@ -10426,14 +10426,14 @@ const routeModule = {
|
|
|
10426
10426
|
Component: AlertsPage,
|
|
10427
10427
|
path: "/statistics/alerts"
|
|
10428
10428
|
},
|
|
10429
|
-
{
|
|
10430
|
-
Component: ProvidersPage,
|
|
10431
|
-
path: "/statistics/providers"
|
|
10432
|
-
},
|
|
10433
10429
|
{
|
|
10434
10430
|
Component: PresetsPage,
|
|
10435
10431
|
path: "/statistics/presets"
|
|
10436
10432
|
},
|
|
10433
|
+
{
|
|
10434
|
+
Component: ProvidersPage,
|
|
10435
|
+
path: "/statistics/providers"
|
|
10436
|
+
},
|
|
10437
10437
|
{
|
|
10438
10438
|
Component: AlertLogsPage,
|
|
10439
10439
|
path: "/statistics/alerts/logs"
|
|
@@ -10464,16 +10464,16 @@ const menuItemModule = {
|
|
|
10464
10464
|
},
|
|
10465
10465
|
{
|
|
10466
10466
|
label: config$2.label,
|
|
10467
|
-
icon:
|
|
10468
|
-
path: "/statistics/
|
|
10467
|
+
icon: void 0,
|
|
10468
|
+
path: "/statistics/providers",
|
|
10469
10469
|
nested: void 0,
|
|
10470
10470
|
rank: void 0,
|
|
10471
10471
|
translationNs: void 0
|
|
10472
10472
|
},
|
|
10473
10473
|
{
|
|
10474
10474
|
label: config$3.label,
|
|
10475
|
-
icon:
|
|
10476
|
-
path: "/statistics/
|
|
10475
|
+
icon: config$3.icon,
|
|
10476
|
+
path: "/statistics/presets",
|
|
10477
10477
|
nested: void 0,
|
|
10478
10478
|
rank: void 0,
|
|
10479
10479
|
translationNs: void 0
|
|
@@ -11,7 +11,7 @@ import { HexColorPicker } from "react-colorful";
|
|
|
11
11
|
import { ResponsiveContainer, ComposedChart, CartesianGrid, XAxis, YAxis, Tooltip, Legend, Line, Bar, Area } from "recharts";
|
|
12
12
|
const STATISTICS_QUERY = "statistics";
|
|
13
13
|
const sdk = new Medusa({
|
|
14
|
-
baseUrl:
|
|
14
|
+
baseUrl: __BACKEND_URL__,
|
|
15
15
|
debug: false,
|
|
16
16
|
auth: {
|
|
17
17
|
type: "session"
|
|
@@ -7205,103 +7205,6 @@ const AlertsPage = () => {
|
|
|
7205
7205
|
const config$4 = defineRouteConfig({
|
|
7206
7206
|
label: "Alerts"
|
|
7207
7207
|
});
|
|
7208
|
-
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
7209
|
-
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
7210
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7211
|
-
/* @__PURE__ */ jsxs(
|
|
7212
|
-
Table.Row,
|
|
7213
|
-
{
|
|
7214
|
-
className: "cursor-pointer",
|
|
7215
|
-
onClick: onToggle,
|
|
7216
|
-
children: [
|
|
7217
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
7218
|
-
/* @__PURE__ */ jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsx(Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
7219
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
7220
|
-
/* @__PURE__ */ jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
7221
|
-
/* @__PURE__ */ jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
7222
|
-
] })
|
|
7223
|
-
] }) }),
|
|
7224
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
7225
|
-
statistics.length || 0,
|
|
7226
|
-
" available"
|
|
7227
|
-
] }) }),
|
|
7228
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
7229
|
-
/* @__PURE__ */ jsx(Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsx(ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsx(ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
7230
|
-
]
|
|
7231
|
-
}
|
|
7232
|
-
),
|
|
7233
|
-
isExpanded && /* @__PURE__ */ jsx(Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxs("div", { className: "space-y-2 py-4", children: [
|
|
7234
|
-
/* @__PURE__ */ jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
7235
|
-
/* @__PURE__ */ jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsx(
|
|
7236
|
-
"div",
|
|
7237
|
-
{
|
|
7238
|
-
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
7239
|
-
children: /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
7240
|
-
/* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
7241
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
7242
|
-
stat.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
7243
|
-
] }) })
|
|
7244
|
-
},
|
|
7245
|
-
stat.id
|
|
7246
|
-
)) })
|
|
7247
|
-
] }) }) })
|
|
7248
|
-
] });
|
|
7249
|
-
};
|
|
7250
|
-
const LoadingRow = () => /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
7251
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { children: [
|
|
7252
|
-
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
7253
|
-
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
7254
|
-
] }) }),
|
|
7255
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
7256
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
7257
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
7258
|
-
] });
|
|
7259
|
-
const ProvidersPage = () => {
|
|
7260
|
-
const [expandedRows, setExpandedRows] = useState(/* @__PURE__ */ new Set());
|
|
7261
|
-
const { data, isLoading } = useQuery({
|
|
7262
|
-
queryFn: () => listProviders(),
|
|
7263
|
-
queryKey: [STATISTICS_QUERY, "providers"]
|
|
7264
|
-
});
|
|
7265
|
-
const providers = (data == null ? void 0 : data.providers) || [];
|
|
7266
|
-
const toggleRow = (providerId) => {
|
|
7267
|
-
setExpandedRows((prev) => {
|
|
7268
|
-
const newSet = new Set(prev);
|
|
7269
|
-
if (newSet.has(providerId)) {
|
|
7270
|
-
newSet.delete(providerId);
|
|
7271
|
-
} else {
|
|
7272
|
-
newSet.add(providerId);
|
|
7273
|
-
}
|
|
7274
|
-
return newSet;
|
|
7275
|
-
});
|
|
7276
|
-
};
|
|
7277
|
-
return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
7278
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsx(Heading, { level: "h2", children: "Providers" }) }),
|
|
7279
|
-
/* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
7280
|
-
/* @__PURE__ */ jsx(Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
7281
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Provider" }),
|
|
7282
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Statistics" }),
|
|
7283
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Status" }),
|
|
7284
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, {})
|
|
7285
|
-
] }) }),
|
|
7286
|
-
/* @__PURE__ */ jsx(Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7287
|
-
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
7288
|
-
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
7289
|
-
/* @__PURE__ */ jsx(LoadingRow, {})
|
|
7290
|
-
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsx(
|
|
7291
|
-
ProviderRow,
|
|
7292
|
-
{
|
|
7293
|
-
provider,
|
|
7294
|
-
isExpanded: expandedRows.has(provider.id),
|
|
7295
|
-
onToggle: () => toggleRow(provider.id)
|
|
7296
|
-
},
|
|
7297
|
-
provider.id
|
|
7298
|
-
)) : /* @__PURE__ */ jsx(Table.Row, { children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
7299
|
-
] }) })
|
|
7300
|
-
] });
|
|
7301
|
-
};
|
|
7302
|
-
const config$3 = defineRouteConfig({
|
|
7303
|
-
label: "Providers"
|
|
7304
|
-
});
|
|
7305
7208
|
const OptionSelector = ({
|
|
7306
7209
|
onSelect,
|
|
7307
7210
|
title,
|
|
@@ -8212,7 +8115,7 @@ const OptionEditDrawer = ({
|
|
|
8212
8115
|
] })
|
|
8213
8116
|
] }) });
|
|
8214
8117
|
};
|
|
8215
|
-
const config$
|
|
8118
|
+
const config$3 = defineRouteConfig({
|
|
8216
8119
|
label: "Option Presets",
|
|
8217
8120
|
icon: ArrowDownTray
|
|
8218
8121
|
});
|
|
@@ -8541,6 +8444,103 @@ const PresetsPage = () => {
|
|
|
8541
8444
|
)
|
|
8542
8445
|
] });
|
|
8543
8446
|
};
|
|
8447
|
+
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
8448
|
+
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
8449
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8450
|
+
/* @__PURE__ */ jsxs(
|
|
8451
|
+
Table.Row,
|
|
8452
|
+
{
|
|
8453
|
+
className: "cursor-pointer",
|
|
8454
|
+
onClick: onToggle,
|
|
8455
|
+
children: [
|
|
8456
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
8457
|
+
/* @__PURE__ */ jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsx(Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
8458
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
8459
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
8460
|
+
/* @__PURE__ */ jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
8461
|
+
] })
|
|
8462
|
+
] }) }),
|
|
8463
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
8464
|
+
statistics.length || 0,
|
|
8465
|
+
" available"
|
|
8466
|
+
] }) }),
|
|
8467
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
8468
|
+
/* @__PURE__ */ jsx(Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsx(ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsx(ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
8469
|
+
]
|
|
8470
|
+
}
|
|
8471
|
+
),
|
|
8472
|
+
isExpanded && /* @__PURE__ */ jsx(Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxs("div", { className: "space-y-2 py-4", children: [
|
|
8473
|
+
/* @__PURE__ */ jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
8474
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsx(
|
|
8475
|
+
"div",
|
|
8476
|
+
{
|
|
8477
|
+
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
8478
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
8479
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
8480
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
8481
|
+
stat.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
8482
|
+
] }) })
|
|
8483
|
+
},
|
|
8484
|
+
stat.id
|
|
8485
|
+
)) })
|
|
8486
|
+
] }) }) })
|
|
8487
|
+
] });
|
|
8488
|
+
};
|
|
8489
|
+
const LoadingRow = () => /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
8490
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { children: [
|
|
8491
|
+
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
8492
|
+
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
8493
|
+
] }) }),
|
|
8494
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
8495
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
8496
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
8497
|
+
] });
|
|
8498
|
+
const ProvidersPage = () => {
|
|
8499
|
+
const [expandedRows, setExpandedRows] = useState(/* @__PURE__ */ new Set());
|
|
8500
|
+
const { data, isLoading } = useQuery({
|
|
8501
|
+
queryFn: () => listProviders(),
|
|
8502
|
+
queryKey: [STATISTICS_QUERY, "providers"]
|
|
8503
|
+
});
|
|
8504
|
+
const providers = (data == null ? void 0 : data.providers) || [];
|
|
8505
|
+
const toggleRow = (providerId) => {
|
|
8506
|
+
setExpandedRows((prev) => {
|
|
8507
|
+
const newSet = new Set(prev);
|
|
8508
|
+
if (newSet.has(providerId)) {
|
|
8509
|
+
newSet.delete(providerId);
|
|
8510
|
+
} else {
|
|
8511
|
+
newSet.add(providerId);
|
|
8512
|
+
}
|
|
8513
|
+
return newSet;
|
|
8514
|
+
});
|
|
8515
|
+
};
|
|
8516
|
+
return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
8517
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsx(Heading, { level: "h2", children: "Providers" }) }),
|
|
8518
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
8519
|
+
/* @__PURE__ */ jsx(Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
8520
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Provider" }),
|
|
8521
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Statistics" }),
|
|
8522
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Status" }),
|
|
8523
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, {})
|
|
8524
|
+
] }) }),
|
|
8525
|
+
/* @__PURE__ */ jsx(Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8526
|
+
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
8527
|
+
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
8528
|
+
/* @__PURE__ */ jsx(LoadingRow, {})
|
|
8529
|
+
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsx(
|
|
8530
|
+
ProviderRow,
|
|
8531
|
+
{
|
|
8532
|
+
provider,
|
|
8533
|
+
isExpanded: expandedRows.has(provider.id),
|
|
8534
|
+
onToggle: () => toggleRow(provider.id)
|
|
8535
|
+
},
|
|
8536
|
+
provider.id
|
|
8537
|
+
)) : /* @__PURE__ */ jsx(Table.Row, { children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
8538
|
+
] }) })
|
|
8539
|
+
] });
|
|
8540
|
+
};
|
|
8541
|
+
const config$2 = defineRouteConfig({
|
|
8542
|
+
label: "Providers"
|
|
8543
|
+
});
|
|
8544
8544
|
const columnHelper = createDataTableColumnHelper();
|
|
8545
8545
|
const getColumns = () => [
|
|
8546
8546
|
columnHelper.accessor("alert.name", {
|
|
@@ -10422,14 +10422,14 @@ const routeModule = {
|
|
|
10422
10422
|
Component: AlertsPage,
|
|
10423
10423
|
path: "/statistics/alerts"
|
|
10424
10424
|
},
|
|
10425
|
-
{
|
|
10426
|
-
Component: ProvidersPage,
|
|
10427
|
-
path: "/statistics/providers"
|
|
10428
|
-
},
|
|
10429
10425
|
{
|
|
10430
10426
|
Component: PresetsPage,
|
|
10431
10427
|
path: "/statistics/presets"
|
|
10432
10428
|
},
|
|
10429
|
+
{
|
|
10430
|
+
Component: ProvidersPage,
|
|
10431
|
+
path: "/statistics/providers"
|
|
10432
|
+
},
|
|
10433
10433
|
{
|
|
10434
10434
|
Component: AlertLogsPage,
|
|
10435
10435
|
path: "/statistics/alerts/logs"
|
|
@@ -10460,16 +10460,16 @@ const menuItemModule = {
|
|
|
10460
10460
|
},
|
|
10461
10461
|
{
|
|
10462
10462
|
label: config$2.label,
|
|
10463
|
-
icon:
|
|
10464
|
-
path: "/statistics/
|
|
10463
|
+
icon: void 0,
|
|
10464
|
+
path: "/statistics/providers",
|
|
10465
10465
|
nested: void 0,
|
|
10466
10466
|
rank: void 0,
|
|
10467
10467
|
translationNs: void 0
|
|
10468
10468
|
},
|
|
10469
10469
|
{
|
|
10470
10470
|
label: config$3.label,
|
|
10471
|
-
icon:
|
|
10472
|
-
path: "/statistics/
|
|
10471
|
+
icon: config$3.icon,
|
|
10472
|
+
path: "/statistics/presets",
|
|
10473
10473
|
nested: void 0,
|
|
10474
10474
|
rank: void 0,
|
|
10475
10475
|
translationNs: void 0
|
|
@@ -44,4 +44,4 @@ const registerProvidersInDb = async ({ container, }) => {
|
|
|
44
44
|
}
|
|
45
45
|
await financialSummaryService.upsert(upsertData);
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9hZGVycy9zdGF0aXN0aWNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQW1GO0FBQ25GLGlFQUFzRTtBQVF0RSxxREFBa0Y7QUFLbEYsbURBQTZEO0FBRTdELE1BQU0seUJBQXlCLEdBQUcsZ0JBQWdCLENBQUE7QUFFbEQsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQVUsRUFBRSxTQUEwQixFQUFFLGFBQWtCLEVBQUUsRUFBRTtJQUN4RixJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxtQkFBVyxDQUNqQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMseUVBQXlFLENBQzVFLENBQUE7SUFDTCxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUV0RixTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ2YsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFBLGdCQUFPLEVBQUMsS0FBSyxDQUFDO0tBQ3hCLENBQUMsQ0FBQztJQUlILGtCQUFNLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxLQUFLLENBQUMsVUFBVSxjQUFjLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEYsU0FBUyxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFBLGdCQUFPLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDL0gsQ0FBQyxDQUFBO0FBRUQsa0JBQWUsS0FBSyxFQUFFLEVBQ2xCLFNBQVMsRUFDVCxPQUFPLEdBUVYsRUFBaUIsRUFBRTtJQUNoQixNQUFNLElBQUEsa0NBQW9CLEVBQUM7UUFDdkIsU0FBUztRQUNULFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUU7UUFDbkMsaUJBQWlCLEVBQUUsY0FBYztLQUNwQyxDQUFDLENBQUE7SUFFRixNQUFNLHFCQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtBQUM5QyxDQUFDLENBQUE7QUFFRCxNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQ0csRUFBaUIsRUFBRTtJQUMvQixNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUF5Qyx5QkFBeUIsRUFBRTtRQUN6RyxpQkFBaUIsRUFBRSxJQUFJO0tBQzFCLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsT0FBTTtJQUNWLENBQUM7SUFFRCxNQUFNLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzdDLDJCQUEyQixDQUM5QixDQUFDO0lBRUYsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLHVCQUF1QixDQUFDLElBQUksQ0FDeEQsRUFBRSxFQUFFLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUN0QyxFQUFFLENBQ0wsQ0FBQTtJQUVELE1BQU0sVUFBVSxHQUFnRSxFQUFFLENBQUE7SUFFbEYsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDMUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7UUFDNUQsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLE1BQU0sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksZUFBZSxFQUFFLENBQUM7UUFDakQsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELE1BQU0sdUJBQXVCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQ3BELENBQUMsQ0FBQSJ9
|
package/LICENSE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2026 Maciej Gerhards (https://github.com/tax1driver)
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|