gemi 0.4.38 → 0.4.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-05fa767ab29abb0f.js +2 -0
- package/dist/chunk-11a75566ff74db17.js +6 -0
- package/dist/chunk-187a09f46e2b36e5.js +2 -0
- package/dist/chunk-21fe96d1a3bb5a27.js +2 -0
- package/dist/chunk-26a5c9db5d17f5e7.js +3 -0
- package/dist/chunk-2a48e0098ccd4249.js +1 -1
- package/dist/chunk-38237d1b01b0db25.js +3 -0
- package/dist/chunk-4d19e16340534ed0.js +1 -1
- package/dist/chunk-4eeee2f82b1fa8bb.js +2 -0
- package/dist/chunk-5128de1a65ba6ce1.js +2 -0
- package/dist/chunk-552bdaee8c03e091.js +1 -1
- package/dist/chunk-59e951812cb019e6.js +2 -0
- package/dist/chunk-5b54843712abde58.js +2 -0
- package/dist/chunk-5defd55c3c97bdb2.js +2 -0
- package/dist/chunk-60f3b8242209ac3e.js +18 -0
- package/dist/chunk-625025af819f55f5.js +2 -0
- package/dist/chunk-6259cd13f53334df.js +2 -0
- package/dist/chunk-66ab377654806d08.js +2 -0
- package/dist/chunk-682b01231754a121.js +1 -1
- package/dist/chunk-6afe097e13ebdf55.js +1 -1
- package/dist/chunk-722f2aeae58daaa3.js +18 -0
- package/dist/chunk-733513f9c9e8b50f.js +2 -0
- package/dist/chunk-7ea1baca4032004f.js +2 -0
- package/dist/chunk-8af626a703659719.js +18 -0
- package/dist/chunk-8b944ecefa1b832c.js +18 -0
- package/dist/chunk-8f547b919361fdf4.js +2 -0
- package/dist/chunk-9238196d4889d660.js +1 -0
- package/dist/chunk-955e2bfcdb7a7e71.js +2 -0
- package/dist/chunk-9f6199bc705fc395.js +18 -0
- package/dist/chunk-a02b2d564bdb603d.js +6 -0
- package/dist/chunk-a719a1f305964521.js +1 -1
- package/dist/chunk-a8310ad9bad32329.js +1 -1
- package/dist/chunk-aafdd9bfb5bde8bf.js +2 -0
- package/dist/chunk-abd0b68c299eebfc.js +1 -1
- package/dist/chunk-b66a9e50afbac035.js +9 -0
- package/dist/chunk-b9e4546aaa58319c.js +2 -0
- package/dist/chunk-bd2888a454e50cfd.js +1 -0
- package/dist/chunk-bee6075c5738d87a.js +1 -1
- package/dist/chunk-c8b00b645df96ed5.js +1 -1
- package/dist/chunk-cb65fe402653c65e.js +1 -1
- package/dist/chunk-dd21f367f8029793.js +2 -0
- package/dist/chunk-ddef8961cbf08a05.js +6 -0
- package/dist/chunk-ee4ff285d7f4ccdf.js +1 -1
- package/dist/chunk-f2dca6305fcba70b.js +1 -1
- package/dist/chunk-f99bdfc336b2ac57.js +1 -1
- package/dist/client/ClientRouterContext.d.ts +2 -11
- package/dist/client/ClientRouterContext.d.ts.map +1 -1
- package/dist/client/Link.d.ts +13 -0
- package/dist/client/Link.d.ts.map +1 -0
- package/dist/client/QueryManager.d.ts.map +1 -1
- package/dist/client/index.d.ts +5 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +104 -93
- package/dist/client/types.d.ts +13 -2
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/useRouter.d.ts +15 -0
- package/dist/client/useRouter.d.ts.map +1 -0
- package/dist/client/useSearchParams.d.ts +2 -0
- package/dist/client/useSearchParams.d.ts.map +1 -0
- package/dist/http/ViewRouter.d.ts +1 -1
- package/dist/http/ViewRouter.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/storage/index.js +10 -1
- package/dist/utils/applyParams.d.ts +2 -0
- package/dist/utils/applyParams.d.ts.map +1 -0
- package/package.json +2 -2
package/dist/client/index.js
CHANGED
|
@@ -10,7 +10,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
10
10
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
11
11
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
12
12
|
var _i, _n, _t, _e, _s, _l, _o, _d, _p, _g, _H_instances, r_fn, R_fn, b_fn, u_fn, m_fn, a_fn, P_fn, E_fn, S_fn, O_fn, k_fn, x_fn, h_fn, f_fn, T_fn, A_fn, y_fn, w_fn, c_fn, C_fn, _a, _i2, _n2, _t2, _e2, _s2, _l2, _b;
|
|
13
|
-
import require$$1, { createContext, useState, useEffect, useContext, useSyncExternalStore, useRef, lazy,
|
|
13
|
+
import require$$1, { createContext, useState, useEffect, useContext, useSyncExternalStore, useRef, lazy, StrictMode, Suspense } from "react";
|
|
14
14
|
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
15
15
|
import require$$2 from "react-dom";
|
|
16
16
|
class Subject {
|
|
@@ -33,15 +33,19 @@ class Subject {
|
|
|
33
33
|
return this.value;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
function applyParams$1(url, params
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
function applyParams$1(url, params) {
|
|
37
|
+
return url.replace(/:([^/]+)/g, (_2, key) => {
|
|
38
|
+
const isOptional = key.endsWith("?");
|
|
39
|
+
const paramName = isOptional ? key.slice(0, -1) : key;
|
|
40
|
+
const value = params[paramName];
|
|
41
|
+
if (value === void 0) {
|
|
42
|
+
if (isOptional) {
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
throw new Error(`Missing parameter: ${paramName}`);
|
|
42
46
|
}
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
return value;
|
|
48
|
+
}).replace(/\/\//g, "/");
|
|
45
49
|
}
|
|
46
50
|
class Resource {
|
|
47
51
|
constructor(key, fallbackData = null) {
|
|
@@ -600,31 +604,6 @@ function parsePath(path) {
|
|
|
600
604
|
}
|
|
601
605
|
return parsedPath;
|
|
602
606
|
}
|
|
603
|
-
function flattenComponentTree(componentTree) {
|
|
604
|
-
let out = [];
|
|
605
|
-
for (const [root, branches] of componentTree) {
|
|
606
|
-
out.push(root, ...flattenComponentTree(branches).flat());
|
|
607
|
-
}
|
|
608
|
-
return Array.from(new Set(out));
|
|
609
|
-
}
|
|
610
|
-
let viewImportMap = null;
|
|
611
|
-
if (typeof window !== "undefined" && process.env.NODE_ENV !== "test") {
|
|
612
|
-
viewImportMap = {};
|
|
613
|
-
const { componentTree } = window.__GEMI_DATA__;
|
|
614
|
-
for (const viewName of flattenComponentTree(componentTree)) {
|
|
615
|
-
viewImportMap[viewName] = lazy(window.loaders[viewName]);
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
const ComponentsContext = createContext({ viewImportMap });
|
|
619
|
-
const ComponentsProvider = (props) => {
|
|
620
|
-
return /* @__PURE__ */ jsx(
|
|
621
|
-
ComponentsContext.Provider,
|
|
622
|
-
{
|
|
623
|
-
value: { viewImportMap: props.viewImportMap ?? viewImportMap },
|
|
624
|
-
children: props.children
|
|
625
|
-
}
|
|
626
|
-
);
|
|
627
|
-
};
|
|
628
607
|
var R = class {
|
|
629
608
|
constructor(t, r, n, o, c, l) {
|
|
630
609
|
__publicField(this, "type", 3);
|
|
@@ -1456,47 +1435,35 @@ function useParams() {
|
|
|
1456
1435
|
const { params } = useContext(ClientRouterContext);
|
|
1457
1436
|
return params;
|
|
1458
1437
|
}
|
|
1459
|
-
function useSearchParams() {
|
|
1460
|
-
const { locationSubject, history } = useContext(ClientRouterContext);
|
|
1461
|
-
const location = useLocation();
|
|
1462
|
-
const searchParams = new URLSearchParams(location.search);
|
|
1463
|
-
const setSearchParams = (newSearchParams) => {
|
|
1464
|
-
let nextSearchParams = newSearchParams;
|
|
1465
|
-
if (typeof newSearchParams === "function") {
|
|
1466
|
-
nextSearchParams = newSearchParams(searchParams);
|
|
1467
|
-
}
|
|
1468
|
-
locationSubject.next({
|
|
1469
|
-
...locationSubject.getValue(),
|
|
1470
|
-
search: nextSearchParams.toString()
|
|
1471
|
-
});
|
|
1472
|
-
history == null ? void 0 : history.push({
|
|
1473
|
-
search: nextSearchParams.toString()
|
|
1474
|
-
});
|
|
1475
|
-
};
|
|
1476
|
-
return [searchParams, setSearchParams];
|
|
1477
|
-
}
|
|
1478
1438
|
function useRouter() {
|
|
1479
1439
|
const { updatePageData, history, getViewPathsFromPathname } = useContext(ClientRouterContext);
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
}
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
path
|
|
1496
|
-
|
|
1497
|
-
|
|
1440
|
+
function action(pushOrReplace) {
|
|
1441
|
+
return async (path, ...args) => {
|
|
1442
|
+
const [options = {}] = args;
|
|
1443
|
+
const {
|
|
1444
|
+
search = {},
|
|
1445
|
+
params = {},
|
|
1446
|
+
shallow
|
|
1447
|
+
} = {
|
|
1448
|
+
params: {},
|
|
1449
|
+
shallow: false,
|
|
1450
|
+
...options
|
|
1451
|
+
};
|
|
1452
|
+
const urlSearchParams = new URLSearchParams(search);
|
|
1453
|
+
const basePath = applyParams$1(path, params);
|
|
1454
|
+
const navigationPath = [
|
|
1455
|
+
applyParams$1(path, params),
|
|
1456
|
+
urlSearchParams.toString()
|
|
1457
|
+
].join("?");
|
|
1498
1458
|
const components = getViewPathsFromPathname(path);
|
|
1499
|
-
const
|
|
1459
|
+
const fetchUrlSearchParams = new URLSearchParams(urlSearchParams);
|
|
1460
|
+
fetchUrlSearchParams.set("json", "true");
|
|
1461
|
+
const fetchPath = [basePath, fetchUrlSearchParams.toString()].join("?");
|
|
1462
|
+
urlSearchParams.set("json", "true");
|
|
1463
|
+
if (shallow) {
|
|
1464
|
+
history == null ? void 0 : history[pushOrReplace](navigationPath);
|
|
1465
|
+
return;
|
|
1466
|
+
}
|
|
1500
1467
|
const [res] = await Promise.all([
|
|
1501
1468
|
fetch(fetchPath),
|
|
1502
1469
|
...components.map((component) => window.loaders[component]())
|
|
@@ -1504,36 +1471,55 @@ function useRouter() {
|
|
|
1504
1471
|
if (res.ok) {
|
|
1505
1472
|
const { data, is404 = false } = await res.json();
|
|
1506
1473
|
updatePageData(data);
|
|
1507
|
-
history == null ? void 0 : history
|
|
1474
|
+
history == null ? void 0 : history[pushOrReplace](navigationPath, is404 ? { status: 404 } : {});
|
|
1508
1475
|
window.scrollTo(0, 0);
|
|
1509
1476
|
}
|
|
1477
|
+
};
|
|
1478
|
+
}
|
|
1479
|
+
return {
|
|
1480
|
+
push: action("push"),
|
|
1481
|
+
replace: action("replace")
|
|
1482
|
+
};
|
|
1483
|
+
}
|
|
1484
|
+
function useSearchParams() {
|
|
1485
|
+
const { push } = useRouter();
|
|
1486
|
+
const location = useLocation();
|
|
1487
|
+
const searchParams = new URLSearchParams(location.search);
|
|
1488
|
+
const setSearchParams = (newSearchParams, shallow = false) => {
|
|
1489
|
+
let nextSearchParams = newSearchParams;
|
|
1490
|
+
if (typeof newSearchParams === "function") {
|
|
1491
|
+
nextSearchParams = newSearchParams(searchParams);
|
|
1510
1492
|
}
|
|
1493
|
+
push(location.pathname, {
|
|
1494
|
+
search: Object.fromEntries(
|
|
1495
|
+
nextSearchParams.entries()
|
|
1496
|
+
),
|
|
1497
|
+
shallow
|
|
1498
|
+
});
|
|
1511
1499
|
};
|
|
1500
|
+
return [searchParams, setSearchParams];
|
|
1512
1501
|
}
|
|
1513
1502
|
const Link = (props) => {
|
|
1514
|
-
const {
|
|
1503
|
+
const {
|
|
1504
|
+
href,
|
|
1505
|
+
onClick,
|
|
1506
|
+
active = false,
|
|
1507
|
+
params = {},
|
|
1508
|
+
search = {},
|
|
1509
|
+
...rest
|
|
1510
|
+
} = { params: {}, ...props };
|
|
1515
1511
|
const { push } = useRouter();
|
|
1516
1512
|
const { pathname } = useLocation();
|
|
1517
|
-
|
|
1518
|
-
if (typeof href === "string") {
|
|
1519
|
-
path = `${href}`;
|
|
1520
|
-
} else {
|
|
1521
|
-
const { hash, pathname: pathname2, search } = href;
|
|
1522
|
-
const urlSearchParams = new URLSearchParams(search);
|
|
1523
|
-
path = `${pathname2}${urlSearchParams.toString()}${hash}`;
|
|
1524
|
-
}
|
|
1525
|
-
const p = typeof href === "string" ? href : href.pathname;
|
|
1513
|
+
const path = applyParams$1(href, params);
|
|
1526
1514
|
return /* @__PURE__ */ jsx(
|
|
1527
1515
|
"a",
|
|
1528
1516
|
{
|
|
1529
|
-
"data-active": active || pathname ===
|
|
1517
|
+
"data-active": active || pathname === path,
|
|
1530
1518
|
href: path,
|
|
1531
1519
|
onClick: (e) => {
|
|
1532
1520
|
e.preventDefault();
|
|
1533
1521
|
onClick == null ? void 0 : onClick(e);
|
|
1534
|
-
|
|
1535
|
-
push(href);
|
|
1536
|
-
});
|
|
1522
|
+
push(href, { search, params });
|
|
1537
1523
|
},
|
|
1538
1524
|
...rest
|
|
1539
1525
|
}
|
|
@@ -5262,7 +5248,7 @@ function requireReactDomClient_production() {
|
|
|
5262
5248
|
workInProgressRootSkippedLanes |= hook;
|
|
5263
5249
|
return prevValue;
|
|
5264
5250
|
}
|
|
5265
|
-
function
|
|
5251
|
+
function startTransition(fiber, queue, pendingState, finishedState, callback) {
|
|
5266
5252
|
var previousPriority = ReactDOMSharedInternals.p;
|
|
5267
5253
|
ReactDOMSharedInternals.p = 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;
|
|
5268
5254
|
var prevTransition = ReactSharedInternals.T, currentTransition = {};
|
|
@@ -5294,7 +5280,7 @@ function requireReactDomClient_production() {
|
|
|
5294
5280
|
function startHostTransition(formFiber, pendingState, action, formData) {
|
|
5295
5281
|
if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));
|
|
5296
5282
|
var queue = ensureFormComponentIsStateful(formFiber).queue;
|
|
5297
|
-
|
|
5283
|
+
startTransition(
|
|
5298
5284
|
formFiber,
|
|
5299
5285
|
queue,
|
|
5300
5286
|
pendingState,
|
|
@@ -5549,7 +5535,7 @@ function requireReactDomClient_production() {
|
|
|
5549
5535
|
},
|
|
5550
5536
|
useTransition: function() {
|
|
5551
5537
|
var stateHook = mountStateImpl(false);
|
|
5552
|
-
stateHook =
|
|
5538
|
+
stateHook = startTransition.bind(
|
|
5553
5539
|
null,
|
|
5554
5540
|
currentlyRenderingFiber$1,
|
|
5555
5541
|
stateHook.queue,
|
|
@@ -17706,7 +17692,7 @@ function requireReactDomClient_development() {
|
|
|
17706
17692
|
workInProgressRootSkippedLanes |= hook;
|
|
17707
17693
|
return prevValue;
|
|
17708
17694
|
}
|
|
17709
|
-
function
|
|
17695
|
+
function startTransition(fiber, queue, pendingState, finishedState, callback) {
|
|
17710
17696
|
var previousPriority = ReactDOMSharedInternals.p;
|
|
17711
17697
|
ReactDOMSharedInternals.p = 0 !== previousPriority && previousPriority < ContinuousEventPriority ? previousPriority : ContinuousEventPriority;
|
|
17712
17698
|
var prevTransition = ReactSharedInternals.T, currentTransition = {};
|
|
@@ -17742,7 +17728,7 @@ function requireReactDomClient_development() {
|
|
|
17742
17728
|
"Expected the form instance to be a HostComponent. This is a bug in React."
|
|
17743
17729
|
);
|
|
17744
17730
|
var queue = ensureFormComponentIsStateful(formFiber).queue;
|
|
17745
|
-
|
|
17731
|
+
startTransition(
|
|
17746
17732
|
formFiber,
|
|
17747
17733
|
queue,
|
|
17748
17734
|
pendingState,
|
|
@@ -17797,7 +17783,7 @@ function requireReactDomClient_development() {
|
|
|
17797
17783
|
}
|
|
17798
17784
|
function mountTransition() {
|
|
17799
17785
|
var stateHook = mountStateImpl(false);
|
|
17800
|
-
stateHook =
|
|
17786
|
+
stateHook = startTransition.bind(
|
|
17801
17787
|
null,
|
|
17802
17788
|
currentlyRenderingFiber$1,
|
|
17803
17789
|
stateHook.queue,
|
|
@@ -30184,6 +30170,31 @@ const ServerDataProvider = (props) => {
|
|
|
30184
30170
|
}
|
|
30185
30171
|
return /* @__PURE__ */ jsx(ServerDataContext.Provider, { value: _value, children: props.children });
|
|
30186
30172
|
};
|
|
30173
|
+
function flattenComponentTree(componentTree) {
|
|
30174
|
+
let out = [];
|
|
30175
|
+
for (const [root, branches] of componentTree) {
|
|
30176
|
+
out.push(root, ...flattenComponentTree(branches).flat());
|
|
30177
|
+
}
|
|
30178
|
+
return Array.from(new Set(out));
|
|
30179
|
+
}
|
|
30180
|
+
let viewImportMap = null;
|
|
30181
|
+
if (typeof window !== "undefined" && process.env.NODE_ENV !== "test") {
|
|
30182
|
+
viewImportMap = {};
|
|
30183
|
+
const { componentTree } = window.__GEMI_DATA__;
|
|
30184
|
+
for (const viewName of flattenComponentTree(componentTree)) {
|
|
30185
|
+
viewImportMap[viewName] = lazy(window.loaders[viewName]);
|
|
30186
|
+
}
|
|
30187
|
+
}
|
|
30188
|
+
const ComponentsContext = createContext({ viewImportMap });
|
|
30189
|
+
const ComponentsProvider = (props) => {
|
|
30190
|
+
return /* @__PURE__ */ jsx(
|
|
30191
|
+
ComponentsContext.Provider,
|
|
30192
|
+
{
|
|
30193
|
+
value: { viewImportMap: props.viewImportMap ?? viewImportMap },
|
|
30194
|
+
children: props.children
|
|
30195
|
+
}
|
|
30196
|
+
);
|
|
30197
|
+
};
|
|
30187
30198
|
const Route = (props) => {
|
|
30188
30199
|
const { componentPath } = props;
|
|
30189
30200
|
const { viewImportMap: viewImportMap2 } = useContext(ComponentsContext);
|
package/dist/client/types.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
+
import type { PropsWithChildren } from "react";
|
|
1
2
|
import type { ViewHandler } from "../http";
|
|
2
3
|
import type { UnwrapPromise } from "../utils/type";
|
|
3
4
|
import type { ViewRPC } from "./rpc";
|
|
4
5
|
type ComponentBranch = [string, ComponentBranch[]];
|
|
5
6
|
export type ComponentTree = ComponentBranch[];
|
|
6
|
-
type
|
|
7
|
-
|
|
7
|
+
export type ViewPaths = ViewKeys<keyof ViewRPC>;
|
|
8
|
+
type ViewKeys<T> = T extends keyof ViewRPC ? T extends `view:${infer K}` ? K : never : never;
|
|
9
|
+
type LayoutKeys<T> = T extends keyof ViewRPC ? T extends `layout:${infer K}` ? K : never : never;
|
|
10
|
+
export type ViewProps<T extends ViewKeys<keyof ViewRPC>> = ViewRPC[`view:${T}`] extends ViewHandler<any, infer O, any> ? UnwrapPromise<O> : never;
|
|
11
|
+
export type LayoutProps<T extends LayoutKeys<keyof ViewRPC>> = ViewRPC[`layout:${T}`] extends ViewHandler<any, infer O, any> ? PropsWithChildren<UnwrapPromise<O>> : never;
|
|
12
|
+
export type UrlParser<T extends string> = string extends T ? Record<string, string> : T extends `${infer _Start}/:${infer Param}?/${infer Rest}` ? {
|
|
13
|
+
[K in Param]?: string;
|
|
14
|
+
} & UrlParser<`/${Rest}`> : T extends `${infer _Start}/:${infer Param}/${infer Rest}` ? {
|
|
15
|
+
[K in Param]: string;
|
|
16
|
+
} & UrlParser<`/${Rest}`> : T extends `${infer _Start}/:${infer Param}` ? {
|
|
17
|
+
[K in Param]: string;
|
|
18
|
+
} : never;
|
|
8
19
|
export {};
|
|
9
20
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;AAE9C,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,CAAC;AAEhD,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,OAAO,GACtC,CAAC,SAAS,QAAQ,MAAM,CAAC,EAAE,GACzB,CAAC,GACD,KAAK,GACP,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,OAAO,GACxC,CAAC,SAAS,UAAU,MAAM,CAAC,EAAE,GAC3B,CAAC,GACD,KAAK,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,OAAO,CAAC,IACrD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GACvD,aAAa,CAAC,CAAC,CAAC,GAChB,KAAK,CAAC;AAEZ,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,OAAO,CAAC,IACzD,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GACzD,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACnC,KAAK,CAAC;AAEZ,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACtD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,CAAC,SAAS,GAAG,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,IAAI,EAAE,GACxD;KAAG,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM;CAAE,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,GACjD,CAAC,SAAS,GAAG,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACvD;KAAG,CAAC,IAAI,KAAK,GAAG,MAAM;CAAE,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,GAChD,CAAC,SAAS,GAAG,MAAM,MAAM,KAAK,MAAM,KAAK,EAAE,GACzC;KAAG,CAAC,IAAI,KAAK,GAAG,MAAM;CAAE,GACxB,KAAK,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { UrlParser, ViewPaths } from "./types";
|
|
2
|
+
type Options<T extends ViewPaths> = UrlParser<T> extends never ? {
|
|
3
|
+
search?: Record<string, string | number | boolean | undefined | null>;
|
|
4
|
+
shallow?: boolean;
|
|
5
|
+
} : {
|
|
6
|
+
search?: Record<string, string | number | boolean | undefined | null>;
|
|
7
|
+
params: UrlParser<T>;
|
|
8
|
+
shallow?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function useRouter(): {
|
|
11
|
+
push: <T extends ViewPaths>(path: T, ...args: UrlParser<T> extends never ? [options?: Options<T>] : [options: Options<T>]) => Promise<void>;
|
|
12
|
+
replace: <T extends ViewPaths>(path: T, ...args: UrlParser<T> extends never ? [options?: Options<T>] : [options: Options<T>]) => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=useRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouter.d.ts","sourceRoot":"","sources":["../../client/useRouter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpD,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAC9B,SAAS,CAAC,CAAC,CAAC,SAAS,KAAK,GACtB;IACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACtE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAER,wBAAgB,SAAS;WAKP,CAAC,SAAS,SAAS,QACzB,CAAC,WACE,SAAS,CAAC,CAAC,CAAC,SAAS,KAAK,GAC/B,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;cAJb,CAAC,SAAS,SAAS,QACzB,CAAC,WACE,SAAS,CAAC,CAAC,CAAC,SAAS,KAAK,GAC/B,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;EAqD9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSearchParams.d.ts","sourceRoot":"","sources":["../../client/useSearchParams.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,iDAMvB,eAAe,GACf,CAAC,CAAC,YAAY,EAAE,eAAe,KAAK,eAAe,CAAC,8BAiB3D"}
|
|
@@ -41,7 +41,7 @@ export declare class ViewRouter {
|
|
|
41
41
|
}
|
|
42
42
|
type ViewRouteParser<T, Prefix extends PropertyKey = ""> = T extends ViewRoute<infer Input, infer Output, infer Params> ? KeyAndValue<`view:${Prefix & string}`, ViewHandler<Input, Output, Params>> : never;
|
|
43
43
|
type LayoutRouteParser<T, Prefix extends PropertyKey = ""> = T extends LayoutRoute<infer Routes, infer I, infer O, infer P> ? RoutesParser<Routes, Prefix> | KeyAndValue<`layout:${Prefix & string}`, ViewHandler<I, O, P>> : never;
|
|
44
|
-
type ParsePrefixAndKey<P extends PropertyKey, K extends PropertyKey
|
|
44
|
+
type ParsePrefixAndKey<P extends PropertyKey, K extends PropertyKey, U = `${P & string}${K & string}`> = U extends "//" ? "/" : U extends `${infer T1}//${infer T2}` ? `${T1}/${T2}` : U extends `${infer T1}/${infer T2}/` ? `${T1}/${T2}` : U;
|
|
45
45
|
type RouterInstanceParser<T extends new () => ViewRouter, Prefix extends PropertyKey = ""> = RoutesParser<InstanceType<T>["routes"], Prefix>;
|
|
46
46
|
type RoutesParser<T extends ViewRoutes, Prefix extends PropertyKey = "", K extends keyof T = keyof T> = K extends any ? T[K] extends new () => ViewRouter ? RouterInstanceParser<T[K], ParsePrefixAndKey<Prefix, K>> : T[K] extends LayoutRoute<any, any, any, any> ? LayoutRouteParser<T[K], ParsePrefixAndKey<Prefix, K>> : T[K] extends ViewRoute<any, any, any> ? ViewRouteParser<T[K], ParsePrefixAndKey<Prefix, K>> : never : never;
|
|
47
47
|
export type CreateViewRPC<T extends ViewRouter, Prefix extends PropertyKey = ""> = KeyAndValueToObject<RoutesParser<T["routes"], Prefix>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewRouter.d.ts","sourceRoot":"","sources":["../../http/ViewRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,iBAAiB,CAAC,CAAC,SAAS,UAAU,UAAU,IAAI;KACtD,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK;CAC9E,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzB,MAAM,MAAM,UAAU,GAAG,MAAM,CAC7B,MAAM,EACJ,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACxB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/B,CAAC,UAAU,UAAU,CAAC,CACzB,CAAC;AAEF,KAAK,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,CAC5C,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,KAC5B,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE9B,MAAM,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IACzC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GACtC,CAAC,UAAU,UAAU,CAAC,CAAC;AAE3B,KAAK,0BAA0B,CAC7B,CAAC,SAAS,UAAU,UAAU,EAC9B,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,IAC5B,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7B,GAAG,EAAE,WAAW,CAAC,MAAM,KAAK,EAAE,MAAM,MAAM,CAAC,KACxC,MAAM,MAAM,GACb,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,KAAK,CAAC;AAEV,KAAK,4BAA4B,CAC/B,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,UAAU,EAC9B,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,IAC5B,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7B,GAAG,EAAE,WAAW,CAAC,MAAM,KAAK,EAAE,MAAM,MAAM,CAAC,KACxC,MAAM,MAAM,GACb,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GACrC,KAAK,CAAC;AAEV,qBAAa,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM;IAIjC,QAAQ,EAAE,MAAM;IAHzB,WAAW,EAAE,MAAM,EAAE,CAAM;IAC3B,OAAO,CAAC,OAAO,CAA8C;gBAEpD,QAAQ,EAAE,MAAM,EACvB,OAAO,CAAC,EACJ,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GACtC,CAAC,UAAU,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAwB9C,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;;;IAMzC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE;CAIjC;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAMzD,QAAQ,EAAE,MAAM;IALzB,QAAQ,EAAE,UAAU,UAAU,CAAC;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAM;IAC3B,OAAO,CAAC,OAAO,CACO;gBAEb,QAAQ,EAAE,MAAM,EACvB,eAAe,EACX,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GACtC,CAAC,UAAU,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAC9C,CAAC,EACL,MAAM,CAAC,EAAE,CAAC;IAiCN,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;;;IAMzC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE;CAIjC;AAED,qBAAa,UAAU;IACrB,WAAW,EAAE,MAAM,EAAE,CAAM;IAC3B,MAAM,EAAE,UAAU,CAAM;IAEjB,IAAI,CAAC,CAAC,SAAS,UAAU,UAAU,EAAE,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,EACxE,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GACf,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAC3C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAQ5B,MAAM,CAAC,CAAC,SAAS,UAAU,EAChC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,CAAC,EAClB,MAAM,CAAC,EAAE,CAAC,GACT,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACzB,MAAM,CACX,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,UAAU,EAC9B,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAE9B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACvB,MAAM,CAAC,EAAE,CAAC,GACT,4BAA4B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EACvD,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EACvD,MAAM,CAAC,EAAE,CAAC,GACT,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;CAYzC;AAED,KAAK,eAAe,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,GAAG,EAAE,IACrD,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GACxD,WAAW,CAAC,QAAQ,MAAM,GAAG,MAAM,EAAE,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1E,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CAAC,CAAC,EAAE,MAAM,SAAS,WAAW,GAAG,EAAE,IACvD,CAAC,SAAS,WAAW,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAEtD,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,WAAW,CAAC,UAAU,MAAM,GAAG,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAClE,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CACpB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"ViewRouter.d.ts","sourceRoot":"","sources":["../../http/ViewRouter.ts"],"names":[],"mappings":"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"}
|
package/dist/http/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../chunk-a5c18c07abe8fd9c.js";class
|
|
2
|
+
import"../chunk-a5c18c07abe8fd9c.js";class h{requests={};static kind="controller";constructor(){}}class C extends h{constructor(){super(...arguments)}}function f(e){return typeof e==="function"&&e.prototype!==void 0}var $=function(e){return f(e)};class l{e;t;r;middlewares=[];constructor(e,t,r){this.method=e;this.handler=t;this.methodName=r;this.handler=t,this.methodName=r,this.method=e}run(e){let t=e;if($(this.handler)){const r=new this.handler,n=r[this.methodName].bind(r);return t=r.requests[this.methodName]?new r.requests[this.methodName](e.rawRequest,e.params):t,n(t)}else return this.handler(e)}middleware(e){return this.middlewares=e,this}}class H{constructor(...e){return new l(...e)}}class x{routes={};middlewares=[];middleware(e){}get(e,t){return new l("GET",e,t)}post(e,t){return new l("POST",e,t)}put(e,t){return new l("PUT",e,t)}patch(e,t){return new l("PATCH",e,t)}delete(e,t){return new l("DELETE",e,t)}resource(e){class t extends x{constructor(){super(...arguments)}routes={"/":{list:this.get(e,"list"),create:this.post(e,"create")},"/:id":{show:this.get(e,"show"),update:this.put(e,"update"),delete:this.delete(e,"delete")}}}return t}file(e,t){return new H("GET",e,t)}}class g{e;middlewares=[];handler;constructor(e,t){this.viewPath=e;if(!t)this.handler=()=>({});else if(typeof t==="function")this.handler=t;else{const[r,n]=t,s=new r,o=s[n].bind(s);this.handler=(a)=>{let i=a;return i=s.requests[n]?new s.requests[n](a.rawRequest,a.params):i,o(a)}}}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class K{e;children;middlewares=[];handler=()=>({});constructor(e,t,r){this.viewPath=e;if(typeof t==="function")this.handler=t,this.children=class extends p{routes=r??{}};else if(Array.isArray(t)){const[n,s]=t,o=new n,a=o[s].bind(o);this.handler=(i)=>{let w=i;return w=o.requests[s]?new o.requests[s](i.rawRequest,i.params):w,a(i)},this.children=class extends p{routes=r??{}}}else this.children=class extends p{routes=t},this.handler=()=>({})}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class p{middlewares=[];routes={};view(e,t){return new g(e,t)}layout(e,t,r){return new K(e,t,r)}}var J="GEMI_REQUEST_BREAKER_ERROR";class u extends Error{constructor(){super(...arguments)}kind="GEMI_REQUEST_BREAKER_ERROR";payload={api:{},view:{}}}class d extends u{errors={};constructor(e){super("Validation error");this.name="ValidationError",this.errors=e,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:e}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}import{AsyncLocalStorage as v} from"async_hooks";class P{e;t;r;constructor(e,t,r={}){this.name=e;this.value=t;this.options=r}toString(){return[`${this.name}=${this.value}`,this.options.maxAge?`Max-Age=${this.options.maxAge}`:"",this.options.httpOnly?"HttpOnly":"",this.options.secure?"Secure":"",this.options.sameSite?`SameSite=${this.options.sameSite}`:"SameSite=Strict",this.options.path?`Path=${this.options.path}`:"Path=/",this.options.domain?`Domain=${this.options.domain}`:"",this.options.expires?`Expires=${this.options.expires.toUTCString()}`:"",this.options.partitioned?"Partitioned":""].filter((e)=>e!=="").join("; ")}}var m=new v;class O{cookies=new Set;user=null;req=null;constructor(){}setCookie(e,t,r={}){this.cookies.add(new P(e,t,r))}setUser(e){this.user=e}setRequest(e){this.req=e}}class c{static getStore(){return m.getStore()}static setRequest(e){m.getStore().req=e}static async run(e){return m.run(new O,e)}}var L=function(e){const[t,r]=e.split(":");switch(t){case"required":return(n)=>{return n!==null&&n!==void 0&&n?.length>0};case"password":return(n)=>{return/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(n)};case"number":return(n)=>{if(typeof n!=="number")return!1;return!isNaN(n)};case"min":return(n)=>{return n?.length>=parseInt(r)};case"max":return(n)=>{return n?.length<=parseInt(r)};case"email":return(n)=>{return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n)};default:return()=>!0}};class I{e;constructor(e){this.data=e}get(e){return this.data[e]}set(e,t){this.data[e]=t}has(e){return this.data[e]!==void 0}toJSON(){return this.data}}class M{rawRequest;headers;cookies;schema={};params;ctx=c.getStore();constructor(e,t){this.params=t,this.rawRequest=e,this.headers=e.headers;const r=this.rawRequest.headers.get("Cookie"),n=new Map;if(r){const s=r.split(";");for(let o of s){const[a,i]=o.split("=");n.set(a.trim(),i.trim())}}this.cookies=n}refine(e){return{}}async parseBody(){const e=new I({});if(this.rawRequest.headers.get("Content-Type")==="application/json"){const t=await this.rawRequest.json();for(let[r,n]of Object.entries(t))e.set(r,n)}if(this.rawRequest.headers.get("Content-Type")==="application/x-www-form-urlencoded"){const t=await this.rawRequest.formData();for(let[r,n]of t)e.set(r,n)}if(this.rawRequest.headers.get("Content-Type").startsWith("multipart/form-data")){const t=await this.rawRequest.formData();for(let[r,n]of t)if(e.has(r)){const s=e.get(r);if(Array.isArray(s))s.push(n),e.set(r,s);else e.set(r,[s,n])}else e.set(r,n)}return e}validateInput(e){const t={};for(let[r,n]of Object.entries(this.schema))for(let[s,o]of Object.entries(n))if(!L(s)(e.get(r))){if(!t[r])t[r]=[];if(s==="required"){t[r]=[String(o)];break}else t[r].push(String(o))}for(let[r,n]of Object.entries(this.refine(e.toJSON())??{})){if(!t[r])t[r]=[];t[r]=[...t[r],n]}if(Object.keys(t).length>0)throw new d(t);else return e}async input(){return this.validateInput(await this.parseBody())}async safeInput(){const e=await this.parseBody();try{return this.validateInput(e),{isValid:!0,errors:{},input:e}}catch(t){if(!(t instanceof d))throw t;return{isValid:!1,errors:t.errors,input:e}}}async terminate(e){throw"not implemented"}}class T{async run(e){return{}}}function U(e){const t=e.headers.get("cookie");if(!t)return new Map;const r=new Map,n=t.split(";");for(let s of n){const[o,a]=s.split("=");r.set(o.trim(),a)}return r}class b{aliases={}}import{AsyncLocalStorage as _} from"async_hooks";var q=new _;class R{static getStore=()=>q.getStore()}class E extends u{error;constructor(e="Not authorized"){super("Authentication error");this.name="AuthenticationError",this.error=e,this.payload={api:{status:401,data:{error:this.error}},view:{}}}}class A extends u{error;constructor(e="Insufficient permissions"){super("Authentication error");this.name="AuthenticationError",this.error=e,this.payload={api:{status:401,data:{error:this.error}},view:{}}}}class y extends u{constructor(){super("Authentication error");this.name="AuthenticationError"}payload={api:{status:401,data:{error:"Authentication error"}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:"/auth/sign-in"}}}}class V extends T{constructor(){super(...arguments)}async run(e){const t=c.getStore(),r=t.req.cookies.get("access_token");if(!r)throw new y;let n=t.user;if(!n){const s=await R.getStore().authenticationServiceProvider.adapter.findSession({token:r,userAgent:t.req.headers.get("User-Agent")});if(!s)throw new y;n=s?.user,t.setUser(n)}return{}}}class S{policiesList={};constructor(){const e=this.register();for(let t of e){const r=new t;this.policiesList[t.name]=r}}register(){return[]}}class k{all(e,t){return!0}}export{U as getCookies,p as ViewRouter,d as ValidationError,C as ResourceController,u as RequestBreakerError,S as PoliciesServiceProvider,k as Policies,b as MiddlewareServiceProvider,T as Middleware,A as InsufficientPermissionsError,M as HttpRequest,h as Controller,E as AuthorizationError,V as AuthenticationMiddleware,y as AuthenticationError,x as ApiRouter};export{h as a,f as b,x as c,p as d,J as e,u as f,c as g,M as h,b as i,q as j,R as k,E as l,A as m,y as n,S as o};
|
package/dist/server/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{v as T,w as C} from"../chunk-d9a84b9122601b72.js";import{x as E} from"../chunk-a5c18c07abe8fd9c.js";import{
|
|
2
|
+
import{v as T,w as C} from"../chunk-d9a84b9122601b72.js";import{x as E} from"../chunk-a5c18c07abe8fd9c.js";import{va as L} from"../chunk-7399f06d840a1449.js";import S from"path";function g(r){return r.map((t,c)=>{if(t.isDev)return x("style",{type:"text/css","data-vite-dev-id":t.id,children:t.content},t.id,!1,void 0,this);else return x("style",{type:"text/css",children:t.content},c,!1,void 0,this)})}import{jsxDEV as x} from"react/jsx-dev-runtime";var P=E(L(),1);async function w(r){const t=new URL(r.url),c=t.searchParams.get("url"),u=Number(t.searchParams.get("w")),s=Number(t.searchParams.get("h")),i=t.searchParams.get("fit")??"cover",o=Number(t.searchParams.get("q"));if(!c)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});const p=`${c.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${c}`,e=await fetch(p);if(!e.ok)return new Response(JSON.stringify({error:"Image not found",info:p}),{headers:{"Content-Type":"application/json"},status:404});const n=Buffer.from(await e.arrayBuffer()),f=await P.default(n).resize(u>0?u:void 0,s>0?s:void 0,{fit:i}).webp({quality:o>0?o:80,force:!0}).toBuffer();return e.headers.delete("Content-Type"),e.headers.delete("Content-Length"),new Response(f,{headers:{"Content-Type":"image/webp","Content-Length":`${f.byteLength}`,...e.headers.toJSON()}})}function R(r){return`
|
|
3
3
|
<!DOCTYPE html>
|
|
4
4
|
<html lang="en">
|
|
5
5
|
<head>
|