gemi 0.4.73 → 0.4.74
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/app/App.d.ts +0 -1
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/index.js +62 -62
- package/dist/chunk-0f15c920a9e36b9d.js +2 -0
- package/dist/{chunk-b240c1abcf310471.js → chunk-146715025d13a0cd.js} +1 -1
- package/dist/chunk-15e6e8c0dd4b0672.js +2 -0
- package/dist/{chunk-e4fa4d02a212da4f.js → chunk-2108d757e3dff3e5.js} +1 -1
- package/dist/{chunk-035e233acf299392.js → chunk-32c9eede30a4534c.js} +2 -2
- package/dist/{chunk-0c3a31bca25291a6.js → chunk-33ee54a02c10fc37.js} +1 -1
- package/dist/{chunk-9c10a08ee4b4d468.js → chunk-4d058b99d3cd50d3.js} +2 -2
- package/dist/{chunk-89c603058a8ca2e0.js → chunk-56b5bf53d53c03a4.js} +1 -1
- package/dist/{chunk-e4119fe2a26e4a22.js → chunk-64a4f5b40b729f4f.js} +1 -1
- package/dist/{chunk-027f8856aa132d85.js → chunk-74019c1ac29f1d31.js} +1 -1
- package/dist/{chunk-b9d952fe3db3df1c.js → chunk-9501e589e3e86a96.js} +1 -1
- package/dist/{chunk-6def55ea02e050ec.js → chunk-a1e43f3e2aa39908.js} +1 -1
- package/dist/chunk-a4b73fda470356b4.js +3 -0
- package/dist/{chunk-89067bce11a12276.js → chunk-a6cfd5c0ed5980bd.js} +1 -1
- package/dist/chunk-a909d17bbac3413c.js +1 -0
- package/dist/chunk-a92a4cb80ddf74b0.js +2 -0
- package/dist/{chunk-3e2f1f65cba86ad5.js → chunk-bd7553048dc4a7f0.js} +1 -1
- package/dist/{chunk-2c49184ec3c45a26.js → chunk-c041f058dc3d571b.js} +1 -1
- package/dist/{chunk-a2fa7b0b7cb9d696.js → chunk-d73f00cff7e5d51a.js} +1 -1
- package/dist/chunk-e8b83fc64856dfe0.js +2 -0
- package/dist/chunk-e98666083e9a2b6f.js +2 -0
- package/dist/chunk-ff5ac7825f395891.js +18 -0
- package/dist/client/QueryManagerContext.d.ts +3 -3
- package/dist/client/QueryManagerContext.d.ts.map +1 -1
- package/dist/client/ServerDataProvider.d.ts +1 -0
- package/dist/client/ServerDataProvider.d.ts.map +1 -1
- package/dist/client/index.js +42 -15
- package/dist/client/useNavigate.d.ts.map +1 -1
- package/dist/client/useQuery.d.ts.map +1 -1
- package/dist/email/index.js +1 -1
- package/dist/facades/Prefetch.d.ts +25 -0
- package/dist/facades/Prefetch.d.ts.map +1 -0
- package/dist/facades/index.d.ts +1 -0
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +1 -1
- package/dist/http/HttpRequest.d.ts +5 -1
- package/dist/http/HttpRequest.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/http/requestContext.d.ts +6 -3
- package/dist/http/requestContext.d.ts.map +1 -1
- package/dist/kernel/Kernel.d.ts +8 -2
- package/dist/kernel/Kernel.d.ts.map +1 -1
- package/dist/kernel/context.d.ts +4 -2
- package/dist/kernel/context.d.ts.map +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/services/ServiceProvider.d.ts +4 -0
- package/dist/services/ServiceProvider.d.ts.map +1 -0
- package/dist/services/file-storage/drivers/FileSystemDriver.d.ts.map +1 -1
- package/dist/services/index.js +10 -1
- package/dist/services/middleware/MiddlewareServiceContainer.d.ts +8 -0
- package/dist/services/middleware/MiddlewareServiceContainer.d.ts.map +1 -0
- package/dist/services/router/ApiRouterServiceContainer.d.ts +13 -0
- package/dist/services/router/ApiRouterServiceContainer.d.ts.map +1 -0
- package/dist/services/router/ApiRouterServiceProvider.d.ts +8 -0
- package/dist/services/router/ApiRouterServiceProvider.d.ts.map +1 -0
- package/dist/services/router/createFlatApiRoutes.d.ts +16 -0
- package/dist/services/router/createFlatApiRoutes.d.ts.map +1 -0
- package/dist/utils/omitNullishValues.d.ts +2 -0
- package/dist/utils/omitNullishValues.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-6a30174fcc338251.js +0 -2
- package/dist/chunk-722959aee5ef3fae.js +0 -2
- package/dist/chunk-9e6c223585edf12e.js +0 -2
- package/dist/chunk-a75cb687951e66a0.js +0 -2
- package/dist/chunk-b3d1c993471a0dbe.js +0 -2
- package/dist/chunk-c4424c04ab2ac6d1.js +0 -3
- package/dist/chunk-db704ae1cdab22a5.js +0 -18
- package/dist/chunk-e1c93f98afc62202.js +0 -2
package/dist/client/index.js
CHANGED
|
@@ -134,20 +134,47 @@ class QueryResource {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
+
const ServerDataContext = createContext({});
|
|
138
|
+
const ServerDataProvider = (props) => {
|
|
139
|
+
let _value = props.value;
|
|
140
|
+
if (props.value) {
|
|
141
|
+
_value = props.value;
|
|
142
|
+
} else {
|
|
143
|
+
_value = window.__GEMI_DATA__;
|
|
144
|
+
}
|
|
145
|
+
return /* @__PURE__ */ jsx(ServerDataContext.Provider, { value: _value, children: props.children });
|
|
146
|
+
};
|
|
137
147
|
const QueryManagerContext = createContext({
|
|
138
148
|
getResource: (key, initialState = {}) => {
|
|
139
149
|
return new QueryResource(key, initialState);
|
|
150
|
+
},
|
|
151
|
+
updatePrefecthedData: (_data) => {
|
|
140
152
|
}
|
|
141
153
|
});
|
|
142
154
|
const QueryManagerProvider = ({ children }) => {
|
|
143
155
|
const resourcesRef = useRef(/* @__PURE__ */ new Map());
|
|
156
|
+
const { prefetchedData } = useContext(ServerDataContext);
|
|
157
|
+
const prefetchedDataRef = useRef(prefetchedData);
|
|
158
|
+
const updatePrefecthedData = (data) => {
|
|
159
|
+
for (const [key, value] of Object.entries(data)) {
|
|
160
|
+
prefetchedDataRef.current[key] = value;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
144
163
|
return /* @__PURE__ */ jsx(
|
|
145
164
|
QueryManagerContext.Provider,
|
|
146
165
|
{
|
|
147
166
|
value: {
|
|
148
|
-
|
|
167
|
+
updatePrefecthedData,
|
|
168
|
+
getResource: (key, initialState) => {
|
|
169
|
+
let _initialState = initialState;
|
|
170
|
+
if (!_initialState && prefetchedDataRef.current[key]) {
|
|
171
|
+
_initialState = prefetchedDataRef.current[key];
|
|
172
|
+
}
|
|
149
173
|
if (!resourcesRef.current.has(key)) {
|
|
150
|
-
resourcesRef.current.set(
|
|
174
|
+
resourcesRef.current.set(
|
|
175
|
+
key,
|
|
176
|
+
new QueryResource(key, _initialState ?? {})
|
|
177
|
+
);
|
|
151
178
|
}
|
|
152
179
|
return resourcesRef.current.get(key);
|
|
153
180
|
}
|
|
@@ -172,7 +199,7 @@ function applyParams$1(url, params) {
|
|
|
172
199
|
}
|
|
173
200
|
const defaultConfig = {
|
|
174
201
|
fallbackData: null,
|
|
175
|
-
keepPreviousData:
|
|
202
|
+
keepPreviousData: true,
|
|
176
203
|
retryIntervalOnError: 1e4
|
|
177
204
|
};
|
|
178
205
|
const defaultOptions$1 = {
|
|
@@ -197,7 +224,10 @@ function useQuery(url, ...args) {
|
|
|
197
224
|
searchParams.sort();
|
|
198
225
|
const variantKey = searchParams.toString();
|
|
199
226
|
const [resource] = useState(
|
|
200
|
-
() => getResource(
|
|
227
|
+
() => getResource(
|
|
228
|
+
normalPath,
|
|
229
|
+
config.fallbackData ? { [variantKey]: config.fallbackData } : null
|
|
230
|
+
)
|
|
201
231
|
);
|
|
202
232
|
const retryIntervalRef = useRef();
|
|
203
233
|
const retryingMap = useRef(/* @__PURE__ */ new Map());
|
|
@@ -1505,16 +1535,6 @@ class ProgressManager {
|
|
|
1505
1535
|
this.unsubscribe();
|
|
1506
1536
|
}
|
|
1507
1537
|
}
|
|
1508
|
-
const ServerDataContext = createContext({});
|
|
1509
|
-
const ServerDataProvider = (props) => {
|
|
1510
|
-
let _value = props.value;
|
|
1511
|
-
if (props.value) {
|
|
1512
|
-
_value = props.value;
|
|
1513
|
-
} else {
|
|
1514
|
-
_value = window.__GEMI_DATA__;
|
|
1515
|
-
}
|
|
1516
|
-
return /* @__PURE__ */ jsx(ServerDataContext.Provider, { value: _value, children: props.children });
|
|
1517
|
-
};
|
|
1518
1538
|
const I18nContext = createContext({});
|
|
1519
1539
|
const I18nProvider = (props) => {
|
|
1520
1540
|
const { i18n } = useContext(ServerDataContext);
|
|
@@ -1598,6 +1618,7 @@ function useNavigate() {
|
|
|
1598
1618
|
isNavigatingSubject,
|
|
1599
1619
|
setNavigationAbortController
|
|
1600
1620
|
} = useContext(ClientRouterContext);
|
|
1621
|
+
const { updatePrefecthedData } = useContext(QueryManagerContext);
|
|
1601
1622
|
const { fetchTranslations } = useContext(I18nContext);
|
|
1602
1623
|
function action(pushOrReplace) {
|
|
1603
1624
|
return async (path, ...args) => {
|
|
@@ -1643,7 +1664,12 @@ function useNavigate() {
|
|
|
1643
1664
|
)
|
|
1644
1665
|
]);
|
|
1645
1666
|
if (res.ok) {
|
|
1646
|
-
const {
|
|
1667
|
+
const {
|
|
1668
|
+
data,
|
|
1669
|
+
prefetchedData,
|
|
1670
|
+
directive = {},
|
|
1671
|
+
is404 = false
|
|
1672
|
+
} = await res.json();
|
|
1647
1673
|
if ((directive == null ? void 0 : directive.kind) === "Redirect") {
|
|
1648
1674
|
if (directive == null ? void 0 : directive.path) {
|
|
1649
1675
|
isNavigatingSubject.next(false);
|
|
@@ -1652,6 +1678,7 @@ function useNavigate() {
|
|
|
1652
1678
|
return;
|
|
1653
1679
|
}
|
|
1654
1680
|
updatePageData(data);
|
|
1681
|
+
updatePrefecthedData(prefetchedData);
|
|
1655
1682
|
history == null ? void 0 : history[pushOrReplace](
|
|
1656
1683
|
navigationPath,
|
|
1657
1684
|
is404 ? { status: 404 } : {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigate.d.ts","sourceRoot":"","sources":["../../client/useNavigate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useNavigate.d.ts","sourceRoot":"","sources":["../../client/useNavigate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKpD,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAC9B,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACtC;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,WAAW;WAaT,CAAC,SAAS,SAAS,QACzB,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,WACd,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;cAJb,CAAC,SAAS,SAAS,QACzB,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,WACd,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;EA0F9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,UAAU,MAAM,CAAC,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,KAAK,kBAAkB,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAC5B,CAAC;AAQF,KAAK,MAAM,GAAG;KACX,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,IAC9B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,GACpD,aAAa,CAAC,IAAI,CAAC,GACnB,KAAK,CAAC;AAEZ,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,MAAM,IAC/B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAMpE,KAAK,KAAK,GAAG,EAAE,CAAC;AAEhB,KAAK,WAAW,CACd,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,WAAW,IACnB,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;AAElC,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GACpC;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,GAC5B,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACrC,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,GACV,KAAK,CAAC;AAEV,KAAK,WAAW,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM,IAAI,CAAC,SAAS,QAAQ,GACzD,IAAI,SAAS,MAAM,CAAC,GAClB,CAAC,CAAC,IAAI,CAAC,GACP,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAClC,CAAC,SAAS,MAAM,CAAC,GACf,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACpB,KAAK,GACP,KAAK,GACT,KAAK,CAAC;AAOV,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,MAAM,EAC7C,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC7D;IACE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACzB,GACD;IACE,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QACnD,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;KACpC;IACD,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/email/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../http/index.js";import"../facades/index.js";import{r as w,s as c} from"../kernel/index.js";import"../chunk-7ce930fe69575c87.js";import"../chunk-474c8dc0ac6b3cdf.js";import"../chunk-
|
|
2
|
+
import"../http/index.js";import"../facades/index.js";import{r as w,s as c} from"../kernel/index.js";import"../chunk-7ce930fe69575c87.js";import"../chunk-474c8dc0ac6b3cdf.js";import"../chunk-a92a4cb80ddf74b0.js";import"../chunk-2108d757e3dff3e5.js";import{renderToStaticMarkup as u} from"react-dom/server";var x=(t)=>{return`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">${u(t)}`};class s{static async send(t,r){const e=new t,{to:a=e.to,from:l=e.from,subject:m=e.subject,cc:p=e.cc,bcc:T=e.bcc,attachments:d=e.attachments,data:E}=r,n=x(e.render(E));if(process.env.EMAIL_DEBUG){const o=`${process.env.ROOT_DIR}/.debug/emails/${(new Date()).toISOString()}${m}.html`;await Bun.write(o,n),Bun.spawnSync(["open",o]);return}await c.getContext().emailServiceProvider.send({bcc:T,cc:p,from:l,subject:m,to:a,attachments:d,html:n})}}import{createElement as f,Fragment as g} from"react";class i{from="doe@gemijs.dev";to=["hi@gemijs.dev"];subject="Welcome";cc=[];bcc=[];attachments=[];render(t){return console.log("EmailTemplate"),f(g,null,"EmailTemplate")}}export{i as EmailTemplate,w as EmailServiceProvider,s as Email};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { RPC } from "../client/rpc";
|
|
2
|
+
import type { UrlParser } from "../client/types";
|
|
3
|
+
import type { ApiRouterHandler } from "../http/ApiRouter";
|
|
4
|
+
type GetRPC = {
|
|
5
|
+
[K in keyof RPC as K extends `GET:${infer P}` ? P : never]: RPC[K];
|
|
6
|
+
};
|
|
7
|
+
type Data<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<any, infer Data, any> ? Awaited<Data> : never;
|
|
8
|
+
type Input<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<infer Input, any, any> ? Input : never;
|
|
9
|
+
export declare class Query {
|
|
10
|
+
private static prepare;
|
|
11
|
+
static instant<T extends keyof GetRPC>(path: T, ...args: UrlParser<T> extends Record<string, never> ? [options?: {
|
|
12
|
+
search: Partial<Input<T>>;
|
|
13
|
+
}] : [options: {
|
|
14
|
+
search?: Partial<Input<T>>;
|
|
15
|
+
params: UrlParser<T>;
|
|
16
|
+
}]): Promise<Data<T>>;
|
|
17
|
+
static prefetch<T extends keyof GetRPC>(path: T, ...args: UrlParser<T> extends Record<string, never> ? [options?: {
|
|
18
|
+
search: Partial<Input<T>>;
|
|
19
|
+
}] : [options: {
|
|
20
|
+
search?: Partial<Input<T>>;
|
|
21
|
+
params: UrlParser<T>;
|
|
22
|
+
}]): void;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=Prefetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Prefetch.d.ts","sourceRoot":"","sources":["../../facades/Prefetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO1D,KAAK,MAAM,GAAG;KACX,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,IAC9B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,GACpD,OAAO,CAAC,IAAI,CAAC,GACb,KAAK,CAAC;AAEZ,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,MAAM,IAC/B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,MAAM,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5E,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,OAAO;IAkDtB,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,MAAM,MAAM,EACnC,IAAI,EAAE,CAAC,EACP,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,GACzC,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IAKrE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,MAAM,EACpC,IAAI,EAAE,CAAC,EACP,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,GACzC,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;CAItE"}
|
package/dist/facades/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../facades/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../facades/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/facades/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{f as
|
|
2
|
+
import{f as T,h as o,i as S,l as s,n as l} from"../http/index.js";import{y as b} from"../chunk-7ce930fe69575c87.js";import{A as V} from"../chunk-474c8dc0ac6b3cdf.js";class d{static async user(){const t=o.getStore(),r=t.req.cookies.get("access_token");let e=t.user;if(!e)e=(await s.getStore().authenticationServiceProvider.adapter.findSession({token:r,userAgent:t.req.headers.get("User-Agent")}))?.user,t.setUser(e);if(e)return e;return null}static async guard(t){const r=await d.user();if(!r)throw new l;try{if(!await t(r))throw new l}catch(e){throw new l}}static async guardSafe(t){const r=await d.user();if(!r)return!1;try{return await t(r)}catch(e){return!1}}}function m(t,r){return t.replace(/:([^/]+)/g,(e,a)=>{const n=a.endsWith("?"),i=n?a.slice(0,-1):a,p=r[i];if(p===void 0){if(n)return"";throw new Error(`Missing parameter: ${i}`)}return p}).replace(/\/\//g,"/")}class y extends T{constructor(t){super("Redirect error");this.name="RedirectError",this.payload={api:{status:200,data:{},directive:{kind:"Redirect",path:t}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:t}}}}}class g{static to(t,...r){const[e={}]=r;throw new y(m(t,e))}}function h(t,r){return t.replace(/{{([^}]+)}}/g,(e,a)=>{const n=r[a];if(n===void 0)throw new Error(`Missing parameter: ${a}`);return n})}class x{static scope(t){return t}static translate(t,...r){const e=s.getStore().i18nServiceContainer,a=e.detectLocale(o.getStore().req),n=e.translations.get(`${a}.server`)?.[t];if(!n)return t;return h(n,r[0])}}var v=b(V(),1);import{Buffer as j} from"buffer";class w{static async put(t){return s.getStore().fileStorageServiceContainer.service.driver.put(t)}static async metadata(t){const r=j.from(await t.arrayBuffer());try{return await v.default(r).metadata()}catch{return{}}}static async fetch(t){return s.getStore().fileStorageServiceContainer.service.driver.fetch(t)}static delete(){}}function C(t){return Object.fromEntries(Object.entries(t).filter(([,r])=>{return r!==null&&r!==void 0}))}class f{static prepare(t,...r){const e={params:{},search:{}},[a={}]=r,{search:n,params:i}={...e,...a},p=o.getStore(),P=p.req.rawRequest,U=new URL(P.url),u=new URLSearchParams(C(n)),I=[`${m(t,i)}`,u.toString()].filter((c)=>c.length>0).join("?"),G=`${U.origin}/${I}`,$=new Request(G,{headers:P.headers}),D=new S($,i),F=(c)=>{p.prefetchedResources.set(m(t,i),{[u.toString()]:c})},R=()=>{return o.run(D,async()=>{const c=await s.getStore().apiRouterServiceContainer.getRouteData(t);return F(c),c})};return{instant:R,prefetch:()=>{p.prefetchPromiseQueue.add(R)}}}static instant(t,...r){return f.prepare(t,...r).instant()}static prefetch(t,...r){return f.prepare(t,...r).prefetch()}}export{g as Redirect,f as Query,x as I18n,w as FileStorage,d as Auth};export{d as q};
|
|
@@ -22,17 +22,21 @@ export declare class HttpRequest<T extends Body = Record<string, never>, Params
|
|
|
22
22
|
rawRequest: Request;
|
|
23
23
|
headers: Headers;
|
|
24
24
|
cookies: Map<string, string>;
|
|
25
|
+
search: Input<T>;
|
|
25
26
|
schema: any;
|
|
26
27
|
params: Params;
|
|
27
28
|
ctx: {
|
|
28
29
|
cookies: Set<import("./Cookie").Cookie>;
|
|
29
30
|
headers: Headers;
|
|
31
|
+
prefetchedResources: Map<string, Record<string, any>>;
|
|
32
|
+
prefetchPromiseQueue: Set<() => Promise<any>>;
|
|
30
33
|
user: any;
|
|
31
|
-
req: HttpRequest
|
|
34
|
+
req: HttpRequest;
|
|
32
35
|
setCookie(name: string, value: string, options?: import("./Cookie").CreateCookieOptions): void;
|
|
33
36
|
setHeaders(name: string, value: string): void;
|
|
34
37
|
setUser(user: any): void;
|
|
35
38
|
setRequest(req: HttpRequest<any, any>): void;
|
|
39
|
+
destroy(): void;
|
|
36
40
|
};
|
|
37
41
|
constructor(req?: Request, params?: any);
|
|
38
42
|
refine(_input: any): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"AAGA,cAAM,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IAIhB,MAAM,IAAI,CAAC;CAGnB;AAuHD,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,WAAW,GAAG,SAAS,CAAC;AAC7B,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,YAAY,GAAG,UAAU,CAAC;AAC/B,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,SAAS,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,MAAM,CACzC,MAAM,CAAC,EACP,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,qBAAa,WAAW,CACtB,CAAC,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACtC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"AAGA,cAAM,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IAIhB,MAAM,IAAI,CAAC;CAGnB;AAuHD,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,WAAW,GAAG,SAAS,CAAC;AAC7B,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,YAAY,GAAG,UAAU,CAAC;AAC/B,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,SAAS,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,MAAM,CACzC,MAAM,CAAC,EACP,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,qBAAa,WAAW,CACtB,CAAC,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACtC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,CAAM;IAEjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG;;;;;;;;;;;;MAA6B;gBAE3B,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG;IA6BhC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;YAIjB,SAAS;IAyCvB,OAAO,CAAC,aAAa;IA+CR,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAI1B,SAAS,IAAI,OAAO,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB,CAAC;IAsBW,SAAS,CAAC,OAAO,EAAE,eAAe;CAGhD;AAeD,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC"}
|
package/dist/http/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../chunk-7ce930fe69575c87.js";class
|
|
2
|
+
import"../chunk-7ce930fe69575c87.js";class x{requests={};static kind="controller";constructor(){}}class C extends x{constructor(){super(...arguments)}}function H(e){return typeof e==="function"&&e.prototype!==void 0}var L=function(e){return H(e)};class u{e;t;n;middlewares=[];constructor(e,t,n){this.method=e;this.handler=t;this.methodName=n;this.handler=t,this.methodName=n,this.method=e}run(e){if(L(this.handler)){const t=new this.handler;return t[this.methodName].bind(t)()}else return this.handler(e)}middleware(e){return this.middlewares=e,this}}class K{constructor(...e){return new u(...e)}}class T{routes={};middlewares=[];middleware(e){}get(e,t){return new u("GET",e,t)}post(e,t){return new u("POST",e,t)}put(e,t){return new u("PUT",e,t)}patch(e,t){return new u("PATCH",e,t)}delete(e,t){return new u("DELETE",e,t)}resource(e){class t extends T{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 K("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[n,r]=t,s=new n,o=s[r].bind(s);this.handler=(i)=>{return o()}}}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class O{e;children;middlewares=[];handler=()=>({});constructor(e,t,n){this.viewPath=e;if(typeof t==="function")this.handler=t,this.children=class extends c{routes=n??{}};else if(Array.isArray(t)){const[r,s]=t,o=new r,i=o[s].bind(o);this.handler=(a)=>{let d=a;return d=o.requests[s]?new o.requests[s](a.rawRequest,a.params):d,i(a)},this.children=class extends c{routes=n??{}}}else this.children=class extends c{routes=t},this.handler=()=>({})}async run(e){return{[this.viewPath]:await this.handler(e)}}middleware(e){return this.middlewares=e,this}}class c{middlewares=[];routes={};view(e,t){return new g(e,t)}layout(e,t,n){return new O(e,t,n)}}var Z="GEMI_REQUEST_BREAKER_ERROR";class l extends Error{constructor(){super(...arguments)}kind="GEMI_REQUEST_BREAKER_ERROR";payload={api:{},view:{}}}class y extends l{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 U} from"async_hooks";class m{e;t;n;constructor(e,t,n={}){this.name=e;this.value=t;this.options=n}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 R=new U;class I{e;cookies=new Set;headers=new Headers;prefetchedResources=new Map;prefetchPromiseQueue=new Set;user=null;constructor(e){this.req=e}setCookie(e,t,n={}){this.cookies.add(new m(e,t,n))}setHeaders(e,t){this.headers.set(e,t)}setUser(e){this.user=e}setRequest(e){this.req=e}destroy(){delete this.cookies,delete this.headers,delete this.prefetchedResources,delete this.prefetchPromiseQueue,delete this.user}}class p{static getStore(){return R.getStore()}static setRequest(e){R.getStore().req=e}static run(e,t){return R.run(new I(e),t)}}var v=function(e){const[t,n]=e.match(/\d+|\D+/g)??[];if(!t||!n)return 0;const r=parseInt(t);switch(n){case"B":return r;case"KB":return r*1024;case"MB":return r*1024*1024;case"GB":return r*1024*1024*1024;case"TB":return r*1024*1024*1024*1024;default:return 0}},D=function(e){switch(e){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return e}},G=function(e){const[t,n]=e.split(":");switch(t){case"required":return(r)=>{if(r instanceof Blob)return r.size>0;return r!==null&&r!==void 0&&r?.length>0};case"password":return(r)=>{return/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(r)};case"number":return(r)=>{if(typeof r!=="number")return!1;return!isNaN(r)};case"min":return(r)=>{return r?.length>=parseInt(n)};case"max":return(r)=>{return r?.length<=parseInt(n)};case"email":return(r)=>{return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)};case"file":return(r)=>{return r instanceof Blob};case"fileType":return(r)=>{if(r instanceof Blob){const s=D(n);return r.type.startsWith(s)}};case"fileSize":return(r)=>{if(r instanceof Blob){const s=v(n);return r.size<=s}};default:return()=>!0}};class f{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;search;schema={};params;ctx=p.getStore();constructor(e,t){if(!e){const s=p.getStore().req;this.params=s.params,this.rawRequest=s.rawRequest}else this.params=t,this.rawRequest=e;this.headers=this.rawRequest.headers;const n=this.rawRequest.headers.get("Cookie"),r=new Map;if(n){const s=n.split(";");for(let o of s){const[i,a]=o.split("=");r.set(i.trim(),a.trim())}}if(this.rawRequest.method==="GET"){const s=new URL(this.rawRequest.url),o=Object.fromEntries(s.searchParams.entries());this.search=new f(o)}this.cookies=r}refine(e){return{}}async parseBody(){const e=new f({});if(this.rawRequest.headers.get("Content-Type")==="application/json"){const t=await this.rawRequest.json();for(let[n,r]of Object.entries(t))e.set(n,r)}if(this.rawRequest.headers.get("Content-Type")==="application/x-www-form-urlencoded"){const t=await this.rawRequest.formData();for(let[n,r]of t)e.set(n,r)}if(this.rawRequest.headers.get("Content-Type")?.startsWith("multipart/form-data")){const t=await this.rawRequest.formData();for(let[n,r]of t)if(e.has(n)){const s=e.get(n);if(Array.isArray(s))s.push(r),e.set(n,s);else e.set(n,[s,r])}else e.set(n,r)}return e}validateInput(e){const t={};for(let[n,r]of Object.entries(this.schema))for(let[s,o]of Object.entries(r)){const i=G(s);let a=o,d=!1;if(typeof o==="function")a=o(e.get(n)),d=typeof a==="undefined";else d=i(e.get(n));if(d)continue;if(!t[n])t[n]=[];if(s==="required"){t[n]=[String(a)];break}else t[n].push(String(a))}for(let[n,r]of Object.entries(this.refine(e.toJSON())??{})){if(!t[n])t[n]=[];t[n]=[...t[n]??[],r]}if(Object.keys(t).length>0)throw new y(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 y))throw t;return{isValid:!1,errors:t.errors,input:e}}}async terminate(e){throw"not implemented"}}class P{async run(e){return{}}}function N(e){const t=e.headers.get("cookie");if(!t)return new Map;const n=new Map,r=t.split(";");for(let s of r){const[o,i]=s.split("=");n.set(o.trim(),i)}return n}class b{aliases={}}import{AsyncLocalStorage as _} from"async_hooks";var q=new _;class w{static getStore=()=>q.getStore()}class E extends l{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 l{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 h extends l{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 P{constructor(){super(...arguments)}async run(e){const t=p.getStore(),n=t.req.cookies.get("access_token");if(!n)throw new h;let r=t.user;if(!r){const s=await w.getStore().authenticationServiceProvider.adapter.findSession({token:n,userAgent:t.req.headers.get("User-Agent")});if(!s)throw new h;r=s?.user,t.setUser(r)}return{}}}class ${policiesList={};constructor(){const e=this.register();for(let t of e){const n=new t;this.policiesList[t.name]=n}}register(){return[]}}class S{all(e,t){return!0}}class k{dictionary={};supportedLocales=[];defaultLocale="en-US";async init(){}detectLocale(e){return this.defaultLocale}}export{N as getCookies,c as ViewRouter,y as ValidationError,C as ResourceController,l as RequestBreakerError,$ as PoliciesServiceProvider,S as Policies,b as MiddlewareServiceProvider,P as Middleware,A as InsufficientPermissionsError,k as I18nServiceProvider,M as HttpRequest,x as Controller,E as AuthorizationError,V as AuthenticationMiddleware,h as AuthenticationError,T as ApiRouter};export{x as a,H as b,T as c,c as d,Z as e,l as f,y as g,p as h,M as i,b as j,q as k,w as l,E as m,A as n,$ as o,k as p};
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { Cookie, type CreateCookieOptions } from "./Cookie";
|
|
2
2
|
import { HttpRequest } from "./HttpRequest";
|
|
3
3
|
declare class Store {
|
|
4
|
+
req: HttpRequest;
|
|
4
5
|
cookies: Set<Cookie>;
|
|
5
6
|
headers: Headers;
|
|
7
|
+
prefetchedResources: Map<string, Record<string, any>>;
|
|
8
|
+
prefetchPromiseQueue: Set<() => Promise<any>>;
|
|
6
9
|
user: any;
|
|
7
|
-
req: HttpRequest
|
|
8
|
-
constructor();
|
|
10
|
+
constructor(req: HttpRequest);
|
|
9
11
|
setCookie(name: string, value: string, options?: CreateCookieOptions): void;
|
|
10
12
|
setHeaders(name: string, value: string): void;
|
|
11
13
|
setUser(user: any): void;
|
|
12
14
|
setRequest(req: HttpRequest<any, any>): void;
|
|
15
|
+
destroy(): void;
|
|
13
16
|
}
|
|
14
17
|
export declare class RequestContext {
|
|
15
18
|
static getStore(): Store;
|
|
16
19
|
static setRequest(req: HttpRequest<any, any>): void;
|
|
17
|
-
static run<T>(fn: () => T):
|
|
20
|
+
static run<T>(httpRequest: HttpRequest, fn: () => T): T;
|
|
18
21
|
}
|
|
19
22
|
export {};
|
|
20
23
|
//# sourceMappingURL=requestContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../http/requestContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,cAAM,KAAK;
|
|
1
|
+
{"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../http/requestContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,cAAM,KAAK;IAOU,GAAG,EAAE,WAAW;IANnC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACjC,OAAO,EAAE,OAAO,CAAiB;IACjC,mBAAmB,mCAA0C;IAC7D,oBAAoB,YAAiB,OAAO,CAAC,GAAG,CAAC,EAAI;IACrD,IAAI,EAAE,GAAG,CAAQ;gBAEE,GAAG,EAAE,WAAW;IAEnC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IAIxE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAItC,OAAO,CAAC,IAAI,EAAE,GAAG;IAIjB,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAIrC,OAAO;CAOR;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAI5C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;CAGxD"}
|
package/dist/kernel/Kernel.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ import { I18nServiceProvider } from "../http/I18nServiceProvider";
|
|
|
6
6
|
import { I18nServiceContainer } from "../http/I18nServiceContainer";
|
|
7
7
|
import { FileStorageServiceContainer } from "../services/file-storage/FileStorageServiceContainer";
|
|
8
8
|
import { FileStorageServiceProvider } from "../services/file-storage/FileStorageServiceProvider";
|
|
9
|
+
import { ApiRouterServiceContainer } from "../services/router/ApiRouterServiceContainer";
|
|
10
|
+
import { ApiRouterServiceProvider } from "../services/router/ApiRouterServiceProvider";
|
|
11
|
+
import { MiddlewareServiceContainer } from "../services/middleware/MiddlewareServiceContainer";
|
|
9
12
|
export declare class Kernel {
|
|
10
13
|
protected emailServiceProvider: typeof EmailServiceProvider;
|
|
11
14
|
protected authenticationServiceProvider: typeof AuthenticationServiceProvider;
|
|
@@ -13,21 +16,24 @@ export declare class Kernel {
|
|
|
13
16
|
protected policiesServiceProvider: typeof PoliciesServiceProvider;
|
|
14
17
|
protected i18nServiceProvider: typeof I18nServiceProvider;
|
|
15
18
|
protected fileStorageServiceProvider: typeof FileStorageServiceProvider;
|
|
19
|
+
protected apiRouterServiceProvider: typeof ApiRouterServiceProvider;
|
|
16
20
|
services: {
|
|
17
21
|
emailServiceProvider: EmailServiceProvider;
|
|
18
22
|
authenticationServiceProvider: AuthenticationServiceProvider;
|
|
19
|
-
middlewareServiceProvider: MiddlewareServiceProvider;
|
|
20
23
|
policiesServiceProvider: PoliciesServiceProvider;
|
|
21
24
|
i18nServiceContainer: I18nServiceContainer;
|
|
22
25
|
fileStorageServiceContainer: FileStorageServiceContainer;
|
|
26
|
+
apiRouterServiceContainer: ApiRouterServiceContainer;
|
|
27
|
+
middlewareServiceContainer: MiddlewareServiceContainer;
|
|
23
28
|
};
|
|
24
29
|
getServices: () => {
|
|
25
30
|
emailServiceProvider: EmailServiceProvider;
|
|
26
31
|
authenticationServiceProvider: AuthenticationServiceProvider;
|
|
27
|
-
middlewareServiceProvider: MiddlewareServiceProvider;
|
|
28
32
|
policiesServiceProvider: PoliciesServiceProvider;
|
|
29
33
|
i18nServiceContainer: I18nServiceContainer;
|
|
30
34
|
fileStorageServiceContainer: FileStorageServiceContainer;
|
|
35
|
+
apiRouterServiceContainer: ApiRouterServiceContainer;
|
|
36
|
+
middlewareServiceContainer: MiddlewareServiceContainer;
|
|
31
37
|
};
|
|
32
38
|
static getContext: () => import("./context").KernelContextValue;
|
|
33
39
|
run<T>(cb: () => T): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../kernel/Kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../kernel/Kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAE/F,qBAAa,MAAM;IACjB,SAAS,CAAC,oBAAoB,8BAAwB;IACtD,SAAS,CAAC,6BAA6B,uCAAiC;IACxE,SAAS,CAAC,yBAAyB,mCAA6B;IAChE,SAAS,CAAC,uBAAuB,iCAA2B;IAC5D,SAAS,CAAC,mBAAmB,6BAAuB;IACpD,SAAS,CAAC,0BAA0B,oCAA8B;IAClE,SAAS,CAAC,wBAAwB,kCAA4B;IAE9D,QAAQ,EAAE;QACR,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,6BAA6B,EAAE,6BAA6B,CAAC;QAC7D,uBAAuB,EAAE,uBAAuB,CAAC;QACjD,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,2BAA2B,EAAE,2BAA2B,CAAC;QACzD,yBAAyB,EAAE,yBAAyB,CAAC;QACrD,0BAA0B,EAAE,0BAA0B,CAAC;KACxD,CAAC;IAEF,WAAW;8BATa,oBAAoB;uCACX,6BAA6B;iCACnC,uBAAuB;8BAC1B,oBAAoB;qCACb,2BAA2B;mCAC7B,yBAAyB;oCACxB,0BAA0B;MAwBtD;IAEF,MAAM,CAAC,UAAU,+CAAkC;IAEnD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC;CAInB"}
|
package/dist/kernel/context.d.ts
CHANGED
|
@@ -2,16 +2,18 @@ import { AsyncLocalStorage } from "async_hooks";
|
|
|
2
2
|
import { EmailServiceProvider } from "../email/EmailServiceProvider";
|
|
3
3
|
import { AuthenticationServiceProvider } from "../auth/AuthenticationServiceProvider";
|
|
4
4
|
import { PoliciesServiceProvider } from "../http/PoliciesServiceProvider";
|
|
5
|
-
import { MiddlewareServiceProvider } from "../http";
|
|
6
5
|
import { I18nServiceContainer } from "../http/I18nServiceContainer";
|
|
7
6
|
import { FileStorageServiceContainer } from "../services/file-storage/FileStorageServiceContainer";
|
|
7
|
+
import { ApiRouterServiceContainer } from "../services/router/ApiRouterServiceContainer";
|
|
8
|
+
import { MiddlewareServiceContainer } from "../services/middleware/MiddlewareServiceContainer";
|
|
8
9
|
export interface KernelContextValue {
|
|
9
10
|
emailServiceProvider: EmailServiceProvider;
|
|
10
11
|
authenticationServiceProvider: AuthenticationServiceProvider;
|
|
11
|
-
middlewareServiceProvider: MiddlewareServiceProvider;
|
|
12
12
|
policiesServiceProvider: PoliciesServiceProvider;
|
|
13
13
|
i18nServiceContainer: I18nServiceContainer;
|
|
14
14
|
fileStorageServiceContainer: FileStorageServiceContainer;
|
|
15
|
+
apiRouterServiceContainer: ApiRouterServiceContainer;
|
|
16
|
+
middlewareServiceContainer: MiddlewareServiceContainer;
|
|
15
17
|
}
|
|
16
18
|
export declare const kernelContext: AsyncLocalStorage<KernelContextValue>;
|
|
17
19
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../kernel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../kernel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAE/F,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,6BAA6B,EAAE,6BAA6B,CAAC;IAC7D,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,0BAA0B,EAAE,0BAA0B,CAAC;CACxD;AAED,eAAO,MAAM,aAAa,uCAA8C,CAAC"}
|