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.
Files changed (71) hide show
  1. package/dist/app/App.d.ts +0 -1
  2. package/dist/app/App.d.ts.map +1 -1
  3. package/dist/app/index.js +62 -62
  4. package/dist/chunk-0f15c920a9e36b9d.js +2 -0
  5. package/dist/{chunk-b240c1abcf310471.js → chunk-146715025d13a0cd.js} +1 -1
  6. package/dist/chunk-15e6e8c0dd4b0672.js +2 -0
  7. package/dist/{chunk-e4fa4d02a212da4f.js → chunk-2108d757e3dff3e5.js} +1 -1
  8. package/dist/{chunk-035e233acf299392.js → chunk-32c9eede30a4534c.js} +2 -2
  9. package/dist/{chunk-0c3a31bca25291a6.js → chunk-33ee54a02c10fc37.js} +1 -1
  10. package/dist/{chunk-9c10a08ee4b4d468.js → chunk-4d058b99d3cd50d3.js} +2 -2
  11. package/dist/{chunk-89c603058a8ca2e0.js → chunk-56b5bf53d53c03a4.js} +1 -1
  12. package/dist/{chunk-e4119fe2a26e4a22.js → chunk-64a4f5b40b729f4f.js} +1 -1
  13. package/dist/{chunk-027f8856aa132d85.js → chunk-74019c1ac29f1d31.js} +1 -1
  14. package/dist/{chunk-b9d952fe3db3df1c.js → chunk-9501e589e3e86a96.js} +1 -1
  15. package/dist/{chunk-6def55ea02e050ec.js → chunk-a1e43f3e2aa39908.js} +1 -1
  16. package/dist/chunk-a4b73fda470356b4.js +3 -0
  17. package/dist/{chunk-89067bce11a12276.js → chunk-a6cfd5c0ed5980bd.js} +1 -1
  18. package/dist/chunk-a909d17bbac3413c.js +1 -0
  19. package/dist/chunk-a92a4cb80ddf74b0.js +2 -0
  20. package/dist/{chunk-3e2f1f65cba86ad5.js → chunk-bd7553048dc4a7f0.js} +1 -1
  21. package/dist/{chunk-2c49184ec3c45a26.js → chunk-c041f058dc3d571b.js} +1 -1
  22. package/dist/{chunk-a2fa7b0b7cb9d696.js → chunk-d73f00cff7e5d51a.js} +1 -1
  23. package/dist/chunk-e8b83fc64856dfe0.js +2 -0
  24. package/dist/chunk-e98666083e9a2b6f.js +2 -0
  25. package/dist/chunk-ff5ac7825f395891.js +18 -0
  26. package/dist/client/QueryManagerContext.d.ts +3 -3
  27. package/dist/client/QueryManagerContext.d.ts.map +1 -1
  28. package/dist/client/ServerDataProvider.d.ts +1 -0
  29. package/dist/client/ServerDataProvider.d.ts.map +1 -1
  30. package/dist/client/index.js +42 -15
  31. package/dist/client/useNavigate.d.ts.map +1 -1
  32. package/dist/client/useQuery.d.ts.map +1 -1
  33. package/dist/email/index.js +1 -1
  34. package/dist/facades/Prefetch.d.ts +25 -0
  35. package/dist/facades/Prefetch.d.ts.map +1 -0
  36. package/dist/facades/index.d.ts +1 -0
  37. package/dist/facades/index.d.ts.map +1 -1
  38. package/dist/facades/index.js +1 -1
  39. package/dist/http/HttpRequest.d.ts +5 -1
  40. package/dist/http/HttpRequest.d.ts.map +1 -1
  41. package/dist/http/index.js +1 -1
  42. package/dist/http/requestContext.d.ts +6 -3
  43. package/dist/http/requestContext.d.ts.map +1 -1
  44. package/dist/kernel/Kernel.d.ts +8 -2
  45. package/dist/kernel/Kernel.d.ts.map +1 -1
  46. package/dist/kernel/context.d.ts +4 -2
  47. package/dist/kernel/context.d.ts.map +1 -1
  48. package/dist/kernel/index.js +2 -2
  49. package/dist/services/ServiceProvider.d.ts +4 -0
  50. package/dist/services/ServiceProvider.d.ts.map +1 -0
  51. package/dist/services/file-storage/drivers/FileSystemDriver.d.ts.map +1 -1
  52. package/dist/services/index.js +10 -1
  53. package/dist/services/middleware/MiddlewareServiceContainer.d.ts +8 -0
  54. package/dist/services/middleware/MiddlewareServiceContainer.d.ts.map +1 -0
  55. package/dist/services/router/ApiRouterServiceContainer.d.ts +13 -0
  56. package/dist/services/router/ApiRouterServiceContainer.d.ts.map +1 -0
  57. package/dist/services/router/ApiRouterServiceProvider.d.ts +8 -0
  58. package/dist/services/router/ApiRouterServiceProvider.d.ts.map +1 -0
  59. package/dist/services/router/createFlatApiRoutes.d.ts +16 -0
  60. package/dist/services/router/createFlatApiRoutes.d.ts.map +1 -0
  61. package/dist/utils/omitNullishValues.d.ts +2 -0
  62. package/dist/utils/omitNullishValues.d.ts.map +1 -0
  63. package/package.json +1 -1
  64. package/dist/chunk-6a30174fcc338251.js +0 -2
  65. package/dist/chunk-722959aee5ef3fae.js +0 -2
  66. package/dist/chunk-9e6c223585edf12e.js +0 -2
  67. package/dist/chunk-a75cb687951e66a0.js +0 -2
  68. package/dist/chunk-b3d1c993471a0dbe.js +0 -2
  69. package/dist/chunk-c4424c04ab2ac6d1.js +0 -3
  70. package/dist/chunk-db704ae1cdab22a5.js +0 -18
  71. package/dist/chunk-e1c93f98afc62202.js +0 -2
@@ -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
- getResource: (key, initialState = {}) => {
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(key, new QueryResource(key, initialState));
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: false,
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(normalPath, { [variantKey]: config.fallbackData })
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 { data, directive = {}, is404 = false } = await res.json();
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;AAIpD,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;WAYT,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;EAoF9B"}
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":"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"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
@@ -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-e1c93f98afc62202.js";import"../chunk-e4fa4d02a212da4f.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};
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"}
@@ -2,4 +2,5 @@ export { Auth } from "./Auth";
2
2
  export { Redirect } from "./Redirect";
3
3
  export { I18n } from "./I18n";
4
4
  export { FileStorage } from "./FileStorage";
5
+ export { Query } from "./Prefetch";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{f as d,h as c,l as o,n as s} from"../http/index.js";import{y as w} from"../chunk-7ce930fe69575c87.js";import{A as R} from"../chunk-474c8dc0ac6b3cdf.js";class n{static async user(){const r=c.getStore(),t=r.req.cookies.get("access_token");let e=r.user;if(!e)e=(await o.getStore().authenticationServiceProvider.adapter.findSession({token:t,userAgent:r.req.headers.get("User-Agent")}))?.user,r.setUser(e);if(e)return e;return null}static async guard(r){const t=await n.user();if(!t)throw new s;try{if(!await r(t))throw new s}catch(e){throw new s}}static async guardSafe(r){const t=await n.user();if(!t)return!1;try{return await r(t)}catch(e){return!1}}}function l(r,t){return r.replace(/:([^/]+)/g,(e,a)=>{const i=a.endsWith("?"),p=i?a.slice(0,-1):a,m=t[p];if(m===void 0){if(i)return"";throw new Error(`Missing parameter: ${p}`)}return m}).replace(/\/\//g,"/")}class f extends d{constructor(r){super("Redirect error");this.name="RedirectError",this.payload={api:{status:200,data:{},directive:{kind:"Redirect",path:r}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:r}}}}}class g{static to(r,...t){const[e={}]=t;throw new f(l(r,e))}}function P(r,t){return r.replace(/{{([^}]+)}}/g,(e,a)=>{const i=t[a];if(i===void 0)throw new Error(`Missing parameter: ${a}`);return i})}class y{static scope(r){return r}static translate(r,...t){const e=o.getStore().i18nServiceContainer,a=e.detectLocale(c.getStore().req),i=e.translations.get(`${a}.server`)?.[r];if(!i)return r;return P(i,t[0])}}var v=w(R(),1);import{Buffer as x} from"buffer";class T{static async put(r){return o.getStore().fileStorageServiceContainer.service.driver.put(r)}static async metadata(r){const t=x.from(await r.arrayBuffer());try{return await v.default(t).metadata()}catch{return{}}}static async fetch(r){return o.getStore().fileStorageServiceContainer.service.driver.fetch(r)}static delete(){}}export{g as Redirect,y as I18n,T as FileStorage,n as Auth};export{n as q};
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 | null;
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;IAE7B,MAAM,EAAE,GAAG,CAAM;IAEjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG;;;;;;;;;MAA6B;gBAE3B,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG;IAwBhC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;YAIjB,SAAS;IAwCvB,OAAO,CAAC,aAAa;IA+CR,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAS1B,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"}
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"}
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import"../chunk-7ce930fe69575c87.js";class T{requests={};static kind="controller";constructor(){}}class f extends T{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 h{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 h{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,o=new n,s=o[r].bind(o);this.handler=(i)=>{return s()}}}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,o]=t,s=new r,i=s[o].bind(s);this.handler=(a)=>{let d=a;return d=s.requests[o]?new s.requests[o](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{cookies=new Set;headers=new Headers;user=null;req=null;constructor(){}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}}class p{static getStore(){return R.getStore()}static setRequest(e){R.getStore().req=e}static async run(e){return R.run(new I,e)}}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 o=D(n);return r.type.startsWith(o)}};case"fileSize":return(r)=>{if(r instanceof Blob){const o=v(n);return r.size<=o}};default:return()=>!0}};class w{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=p.getStore();constructor(e,t){if(!e){const o=p.getStore().req;this.params=o.params,this.rawRequest=o.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 o=n.split(";");for(let s of o){const[i,a]=s.split("=");r.set(i.trim(),a.trim())}}this.cookies=r}refine(e){return{}}async parseBody(){const e=new w({});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 o=e.get(n);if(Array.isArray(o))o.push(r),e.set(n,o);else e.set(n,[o,r])}else e.set(n,r)}return e}validateInput(e){const t={};for(let[n,r]of Object.entries(this.schema))for(let[o,s]of Object.entries(r)){const i=G(o);let a=s,d=!1;if(typeof s==="function")a=s(e.get(n)),d=typeof a==="undefined";else d=i(e.get(n));if(d)continue;if(!t[n])t[n]=[];if(o==="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(){if(this.rawRequest.method==="GET"){const e=new URL(this.rawRequest.url),t=Object.fromEntries(e.searchParams.entries());return this.validateInput(new w(t))}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 o of r){const[s,i]=o.split("=");n.set(s.trim(),i)}return n}class b{aliases={}}import{AsyncLocalStorage as _} from"async_hooks";var q=new _;class C{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 x 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 x;let r=t.user;if(!r){const o=await C.getStore().authenticationServiceProvider.adapter.findSession({token:n,userAgent:t.req.headers.get("User-Agent")});if(!o)throw new x;r=o?.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,f 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,T as Controller,E as AuthorizationError,V as AuthenticationMiddleware,x as AuthenticationError,h as ApiRouter};export{T as a,H as b,h 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,C as l,E as m,A as n,$ as o,k as p};
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 | null;
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): Promise<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;IACT,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACjC,OAAO,EAAE,OAAO,CAAiB;IACjC,IAAI,EAAE,GAAG,CAAQ;IACjB,GAAG,EAAE,WAAW,GAAG,IAAI,CAAQ;;IAM/B,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;CAGtC;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;WAI/B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAG7C"}
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"}
@@ -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;AAEjG,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;IAElE,QAAQ,EAAE;QACR,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,6BAA6B,EAAE,6BAA6B,CAAC;QAC7D,yBAAyB,EAAE,yBAAyB,CAAC;QACrD,uBAAuB,EAAE,uBAAuB,CAAC;QACjD,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,2BAA2B,EAAE,2BAA2B,CAAC;KAC1D,CAAC;IAEF,WAAW;8BARa,oBAAoB;uCACX,6BAA6B;mCACjC,yBAAyB;iCAC3B,uBAAuB;8BAC1B,oBAAoB;qCACb,2BAA2B;MAmBxD;IAEF,MAAM,CAAC,UAAU,+CAAkC;IAEnD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC;CAInB"}
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"}
@@ -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,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AAEnG,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,6BAA6B,EAAE,6BAA6B,CAAC;IAC7D,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,2BAA2B,EAAE,2BAA2B,CAAC;CAC1D;AAED,eAAO,MAAM,aAAa,uCAA8C,CAAC"}
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"}